일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 바빠지나?
- 마일섬
- 자 이제 시작이야
- 황금 장미
- 일지 시작한 지 얼마나 됐다고
- 핀토스 프로젝트 2
- 제발흰박
- 핀토스 프로젝트 4
- botw
- multi-oom
- 가테
- alarm clock
- 아직도 실험 중
- 노가다
- 내일부터
- 파란 장미
- 끝
- 셋업
- 핀토스 프로젝트 3
- 핀토스 프로젝트
- 핀토스 프로젝트 1
- PINTOS
- 글리치
- 글루민
- Project 1
- Today
- Total
목록핀토스 프로젝트 1 (4)
거북이의 쉼터
이건 내가 처음 해보는 과제이다. 이전 것들까지는 지난 핀토스 때도 구현했던 것들이어서 어느 정도 간단하게 끝났지만 이번 것은 정말 미지의 영역이다. 때문에 디버깅에 시달릴 것으로 보인다. 또, 지금까지 테스팅을 여러 번 돌려본 결과 시간이 정~말 길게 걸린다. 다른 것들은 5초 내로 끝나는 데에 비해 한 1분? 정도의 소요 시간에 테스트 케이스 하나가 끝난다. 그 결과도 어떻게 판단하는지 모호하다. 다른 케이스는. ck 파일의 내용대로 나오면 정답이라는 명확한 기준이 있는데 이건 뭔가 자체적으로 시뮬레이션을 돌리는것인지 .ck 파일이 실행 프로그램처럼 되어있다. 때문에 디버깅을 어떻게 할지도 감이 잘 안 잡힌다. 뭐, 언제나 그랬듯이, 맨 땅에 헤딩 말고는 답이 없다. 일단 부딪혀 보자. 매뉴얼을 읽어..
드디어 역겨운 Priority를 뜯어고칠 시간이 돌아왔다. 역겹다 해도 4천왕 중 최약체지만... 아무튼, 처음 이 프로젝트를 접하면 "엥. 그냥 priority 관련 함수 구현하고 넣는 순서만 바꿔주면 알아서 될 것 같은데 뭐가 문제임?" 이라고 생각할 수 있다. 그러나 프로젝트 설명에서도 나와 있듯 Priority 스케줄링의 복병은 Priority Inversion을 해결하는 것이다. Priority Inversion을 이해하기 위해서는 lock과 semaphore의 개념을 이해해야 한다. lock과 semaphore를 이해하기 위해서는 동기화 문제의 개념을 알아야 한다. 동기화 문제의 자세한 내용은 수업에서 배울테지만 간략히 설명하자면, 하나의 자원을 여러 개의 작업이 동시에 접근할 때 생기는 문제..
보호되어 있는 글입니다.
정말 오랫동안 블로그에 들리지 않았다. 주 요인은 귀찮음이 첫 번째요, OS 공부가 두 번째였다. 사실 거진 2년간 OS 공부를 손에서 놓고 있던 터라 매뉴얼을 읽어도 연관된 개념들이 가물가물했다. 이대로는 코딩 자체를 독자적으로 못하겠단 생각이 들어서 OS 책을 사서 다시 공부를 시작했다. 공부하다 보니 마침 9월도 끝나고, 내 전역도 확실시되었기에 이제 좀 뭐라도 다시 시작해야 하지 않을까 하는 생각이 들어 다시 글을 쓴다. 우선 Pintos에 익숙하지 않은 사람들을 위해 짤막하게 설명을 하자면, Pintos에서는 모든 프로그램들이 1 Process - 1 Thread 라는 기본 전제가 있으며, 그래서 실질적으로 Process와 Thread를 동일시하는 것을 코드 곳곳에서 볼 수 있다. 그래서 후술 ..