본문 바로가기

정글37

늦게 써보는 Pintos 3주차 VM(가상메모리) 회고 Introduce- 1주 차에서는 스케줄링, 2주 차에서는 시스템 콜에 대해서 알아가고 구현해봤다면 3주차는 (Virtual Memory) 가상 메모리에 관한 주차이다.- 2주차까지는 system call을 이용해 어떠한 파일을 읽어오고 쓰는 명령들을 컨트롤 해봤다면 3주 차는 컴퓨터에 혁명인 가상메모리를 다루는 주차이다.- 가상 메모리란 실제 메모리 크기와 상관없이 메모리를 이용할 수 있도록 가상의 메모리 주소를 사용하는 방법을 의미한다. 글을 쓰는 이 시점에서 얼마 전에 면접에서 가상 메모리를 왜 사용하고 사용했을 때 어떠한 장점이 있을지 질문을 받은 적이 있는데, 단지 메모리 중 사용 가능한 물리 메모리들을 추상화 해놓은 것이라고 명확하게 말하지 못했던 게 아쉬움이 남는데, 갑자기 받은 질문이라 명.. 2023. 9. 25.
Pintos(2주차) system call 후기 회고 이번주는 모두가 힘들었을 것이라고 생각한다. 매우 방대한 양의 과제와 부족한 시간 그리고 어려운 난이도 이 3개가 합쳐져서 삼위일체를 이루었는데  사람마다 마주한 문제와 에러 덩어리들이 한 가득해서 정신이 아득했을 것이다. 나 또한 그랬고 우리 반 사람들도 그랬을 것이다. 그리고 모두가 해내지 못해도 얻어가는 것이 그만큼 많았을 것이라고 생각한다. 그래도 여기는 정글 아닌가! 10일을 몰입헤서 물어뜯은결과 결국 마지막 날에 겨우 all pass를 받아냈다.알게된것1. 꺼진불도 다시 보자우리팀이 1주차에 짠 lock_acquire()가 테스트 케이스가 당연히 잘돌아가고 all pass를 받아서 저 함수가 잘못되었다는 생각조차 안했다.하지만 알고보니 lock을 끝날때 NULL로 초기화를 안해줘서 lock자체.. 2023. 6. 12.
Pintos Thread (WIL) 깊게 생각해볼 Keyword 이번주에는 쓰레드 스케줄링 알고리즘을 이해하고 OS 알고리즘을 짜봤는데 깊게 생각해봐야될 키워드 들이 뭐가 있는지 고민해보고 적어보려고한다. 1. 쓰레드 상태란 운영체제에서 관리하는 쓰레드의 현재 상태를 나타내는 개념이다. 5개의 상태가 있고 Create,Ready,Running,Blocked, Terminated 생성(Create) : 쓰레드가 생성되었지만 아직 실행되지 않은 초기 상태이다. 준비(Ready) : 쓰레드가 실행 가능한 상태이고, 프로세서의 할당 기다리는 상태 실행(Running) : 쓰레드가 현재 프로세서에서 실행되고 있는 상태 종료(Terminated) : 쓰레드가 실행을 완료하고 종료된 상태 위와 같은 상태가 있고 스케줄러에 의해 상태 전환이 관리 된다. 그러면 스케줄링은 무엇인가?.. 2023. 6. 2.
(Pintos 1주차) Priority scheduling 중요 키워드 1. priority scheduling 우선순위 스케줄링은 프로세스에게 우선순위를 할당하여 스케줄링하는 방식이다. pintos에서는 우선순위를 정수값으로 할당하였다. 우선순위를 기반으로 CPU할당을 결정하므로, 우선순위가 높은 프로세스가 CPU를 더많이 사용한다. 선점형과 비선점 형이 있는데 우리는 선점형으로 구현을 하였다. 실행을 기다리는 ready_list에서 thread의 우선순위를 기준으로 나열하고 실행한다. 우선순위는 동적으로 변하기 때문에 CPU에 할당할 때 정렬을 한다. 2. timer_interrupt 이 함수를 알기는 매우 어려웠지만 책에 나온 내용대로 보면 interrupt를 비동기적으로 일으키기 때문에 intr_disable()을 하게 되면 하나의 독립적인 Thread로.. 2023. 5. 31.