전체 글(23)
-
In Summer
크래프톤 정글 5기 수료식을 마치고, 본가로 돌아왔다.지난 에세이 작성 이후의 경험들을 짧게 정리할 예정이다. pintOS (3주 + 2주) 총 5주 기간 동안 pintOS 프로그램을 통해 OS 구조, 작동 방식과 같은 전반적 지식을 직접 경험하며 배웠다.어디까지 도달해야 한다는 표지판은 있지만, 그 목표까지 어떻게 도달할지는 팀, 개인마다 모두 달랐을 것이다. 전역 변수를 몇 개 선언할 지, Lock, Semaphore는 언제 어떻게 설정할 지와 같은 고민을 했을 것이고, 개인마다 새로운 문제를 마주했을 때 해결하는 방식도 모두 달랐을 것이라고 생각한다. 나는 좋은 팀원들만 만나게 되어, 다양한 문제 해결 방식을 느낄 수 있었고 '시간이 눈 깜짝할 새 흘러간다'는 진부한 표현을 몸소 느끼게 된 기간이였..
2024.08.05 -
In June
시간이 너무 빠르다. 0주차 프로젝트를 마치고, 회식을 한 이후 에세이를 작성했는데 벌써 2개월이 지났다.이후 3주간 알고리즘 문제 풀이를 통해 다양한 유형의 알고리즘 문제를 접하고, 코딩테스트 대비를 어떻게 해야할 지 감을 잡을 수 있었다. 문제 풀이 초기에는 다른 교육생들과의 문제 풀이 속도 차이때문에 조급했었고 마음도 시야도 좁아졌다.문제 풀이에 투자한 시간이 각자 다르니 속도에 차이가 나는 건 당연한 일이지만,특정 집단에서 나의 기여도가 평균 이하라는 걸 자각하는 건 깊은 압박감과 불쾌감을 느끼게 만들었다. 나만의 속도를 유지하는 게 중요하다는 걸 (다시)깨닫고 나서야 다른 교육생의 창의적인 풀이를 보고 감탄할 수 있게 됐던 기간이였다.앞으로의 과정에서 다른 교육생과 나의 속도 차이를 인정하되, ..
2024.06.02 -
[PintOS] Project 3 키워드 정리 (File-backed page, Direct Memory Access)
File-backed page Page :- 가상 메모리를 일정 크기로 나누는 단위- 보통 4KB- 프로세스 가상 주소 공간은 Page로 구성됨- 각 Page는 연속적인 가상 주소를 가짐Frame :- 물리 메모리를 일정 크기로 나누는 단위- 보통 4KB- 물리 메모리는 이런 Frame으로 구성됨- 각 Frame은 연속적인 물리 주소를 가짐Relation :- 가상 메모리의 Page는 실제 물리 메모리의 Frame과 Mapping됨- Mapping 정보는 Page Table에 저장- 프로세스가 특정 가상 주소에 접근하면, 해당 주소를 포함하는 Page를 찾음- 해당 Page와 Mapping된 Frame을 알아내기 위해 Page Table 이용- Mapping된 Frame의 물리 주소로 변환하여 실제 데이..
2024.06.02 -
[PintOS] 2-2 System Call
GIT [process.c, process.h, syscall.c, syscall.h, thread.c, thread.h, exception.c] 영상 출처 : https://www.youtube.com/watch?v=sBFJwVeAwEk - 현재 pintOS에는 system call handler 부분이 비어있음- handler 구현 이후, system call 동작도 구현해야 함 - System Call : OS에서 제공하는 서비스를 위한 programming Interface User mode program이 Kernel 기능을 사용할 수 있게 해줌- System Call은 kernel mode에서 실행되고, 다시 user mode로 전환시킴 - syscall3 : 3..
2024.06.02 -
[PintOS] 2-1 Arguments passing
GIT [process.c, process.h, syscall.c, syscall.h] 영상 출처 : https://www.youtube.com/watch?v=RbsE0EQ9_dY Background Project 2 : User programmingObjective- pintOS에서 user program을 실행하는 것 # pintOS, 다른 OS에서는 프로세스를 실행하기 위해서 argument를 받음- process_wait() 함수에서 process_execute() 함수 인자로 받아옴- process_execute()에서는 특정 동작을 실행하는 thread를 생성함- 하지만 process_wait의 skeleton code에는 단순히 return만 기입되어 있음 -> 이러면 그냥 꺼짐 -->..
2024.06.02 -
[PintOS] Project 2 키워드 정리 (User mode / Kernel mode, System Call, File descriptor, Atomic operation, Interrupt)
# Todo1. 개념2. Why this concept need ?3. How use this concept in project ? User mode / Kernel mode ❓ Definition :- Application이 시스템 결함을 일으키는 것을 방지하고자 2가지 모드가 제공된다- Mode bit로 모드를 구분 (0 == kernel / 1 == user) 1) User mode :- 사용자 프로그램이 실행되는 모드 / 제한된 권한을 가짐- User application code가 실행되는 영역- 시스템 자원에 직접 접근이 불간으하며, OS가 제공하는 시스템 콜을 통해 필요한 자원을 요청할 수 있음2) Kernel mode :- OS kernel이 실행되는 모드 / 모든 시스템 자원에 접근할 수..
2024.05.20