PintOS 2주차-day1

솔다·2022년 12월 23일
0

핀토스를 공부하면서 간단하게 적기로 했습니다.

Thread 를 처리하는 과제를 마치고 WIL을 적었었고, 정리하면서 머릿속에서 정리되는 것을 느꼈다. 그래서 간단하게 나마 조금씩 적기로 했다.

오늘은 Git book을 읽으면서 대체적인 내용을 훑어봤다.

Project 2의 과제의 핵심은 바로, userprogram과 I/O를 다루는 것이다.

user program을 실행하는 것은 kernel에 의해서 다양한 작업이 발생하는 것이라고 이해했다.

kernel도 user program이 실행될 때 다양한 일들이 일어나는데, 이 과정에 대해서 제대로 실행되도록 하는 것이 이번 과제였다.

OS의 특성상 커널부분은 고정된 Physical memory 주소를 가지고 있으며, user가 함부로 해당 주소로 접근하거나 수정하는 것을 막도록 되어있다. 이를 위해서 프로그램이 접근이 불가능하도록 메모리 주소를 관리해야한다. 이를 위해서 파일을 수정해 나갈 예정이다.

그리고 user program을 실행할때, 자식 프로세스가 생성될 수 있다. PintOS는 현재 자식 프로세스가 완전히 종료되는 것을 기다리지 않고 종료되는 프로세스를 가지고 있는 상태이다.
우리는 여러 함수들을 수정하여 여러개의 중복되는 프로그램들이 열리고나면, 정확하게 종료되는 것을 기다려서 잘 종료되도록 하는 것이 목표이다.

내가 할 수 있는 한 최대한 간단하게 이번 과제를 압축해서 썼다. Project1 까지는 Thread에 관한 부분이어서 이론만 이해하고도 전체적인 그림을 그린 뒤에 코드를 작성할 수 있었는데, 이번에는 조금 더 방대하게 느껴지고 어렵게 느껴진다.

앞선 WIL에서도 썼듯이, 내일부터는 어떻게 진행할지 대충 생각을 했다.
오늘은 전체적인 흐름을 대충 그렸으니, 내일부터는 작은 함수들을 채워가면서 구체화 해 나갈 생각이다.

0개의 댓글