본문 바로가기

개발/PintOS

(3)
Pintos Project(핀토스 프로젝트) 3 - Threads 이번에 할 프로젝트의 주인공은 Threads이다. Pintos Manual에는 제일 처음 등장하는 파트인데 울 학교에서는 제일 마지막에 했다. 이번에 일정상 Virtual Memory 구현 부분이 빠졌다고 들었는데, 그게 좀 아쉬워서 깃헙을 통해 Virtual Memory 테스트코드도 구해볼 생각이다. (OS는 내 사랑이니까!) 이번 프로젝트에서 Process나 Threads가 Priority에 맞추어 동작하도록 한다. 현재 PintOS의 thread는 RUNNING과 READY를 왕복하며 busy waiting을 한다. 아무것도 하는 일 없이 왔다~갔다~ 하면서 CPU를 낭비하고 있는 셈이다. CPU 낭비를 막기 위해 busy waiting 방식을 수정해서 더욱 합당한 waiting 방식을 구현한다. ..
Pintos Project(핀토스 프로젝트) 2 - User Program_File management 이전 프로젝트에서 사용자와 상호작용할 수 있는 System call 몇 가지를 구현했다. 이번 프로젝트는 File Management와 관련된 System Call을 구현한다. 원래는 이전 프로젝트와 이번 프로젝트를 함께 진행해야 하지만 난이도가 워낙 높은 프로젝트이다보니... 학교 측에서 둘로 나눈 것 같다.(감사합니다 선생님...흑흑) 이전에 구현한 System Call과 잘 연동되어야 하는 것은 물론이고 File Processing도 잘 되어야 한다. 예를 들면 한 File을 두 Program이 접근할 경우 Race Condition이 발생할 수 있으므로 이를 잘 처리해야 한다. 이 외에도 파일을 이용한 Operation에 관한 다양한 이슈를 해결하면서 File System Call을 구현한다. 무..
Pintos Project(핀토스 프로젝트) 1 - User Program OS 과목에서 악명높은 프로젝트가 핀토스 프로젝트다. 그만큼 열심히하면 배워가는 것도 많다. 지금부터 핀토스 프로젝트 소개를 하려고 한다. 기준은 서강대학교에서 제공하는 Manual과 Pintos Manual이다. * 0_2 프로젝트는 핀토스의 data structure를 구현하는 것이다. 공식 Pintos에서 요구하는 test는 아니고 서강대에서 만든 것 같다. (test를 일일이 만든 게 대단하다...) Data structre를 열심히 공부한 사람은 쉽게 할 수 있고, 난이도도 높지 않으니 알아서 잘 하시길 바란다. Pintos Project 1은 User Program을 짜는 것이다. 현재 Pintos는 아주 기본적인 기능만 갖추고 있다. 할 수 있는 게 없다. 예를 들면 Boot하고 실행하고 P..