본문 바로가기

개발공부22

PINTOS 6주차 file system 개요 이번 주차에는 file system을 공부했다. 시간이 촉박했다. 목요일부터 화요일로 일주일이 채 안되어 파일시스템 이론 위주로 공부했다. 가상메모리만큼은 아니지만 꽤 흥미로운 주제였다. 우리가 사용하는 파일들이 다양한 메커니즘으로 구현되어있지만 적절한 추상화(abstraction)을 제공해 운영체제가 파일 시스템 각각을 인지하지 않아도 같은 api로 작동하게 만든 점이 인상깊었다. 그리고 파일 시스템이 발전해온 과정을 따라가니 사람들이 어떻게 문제를 해결해왔는지 볼 수 있어서 좋았다. 37 하드 디스크 드라이브 파일 시스템을 하드 디스크의 동작 원리에 맞추어 개발할 만큼 중요한 저장장치 모든 드라이브는 읽고 쓸 수 있는 많은 수의 섹터(512 바이트 블럭)로 이루어져 있다 디스크의 주소 공간: n.. 2021. 11. 2.
PINTOS 4-5주차 VM 개요 이번 주차에서는 가상메모리(Virtual Memory)에 대해 다루었다. 이 문서에는 operating system: three easy pieces의 VM 내용을 대략적으로 살펴보려 한다. 메로리 가상화란 운영체제가 각 프로세스마다 자신만의 커다란 전용 메모리를 가진다는 환상을 제공하는 것 13 주소 공간의 개념 13.1 초기 시스템 초기 컴퓨터에서, 운영체제는 메모리에 상주하는 라이브러리의 집합이었을 뿐이다 13.2 멀티프로그래밍과 시분할 멀티 프로그래밍(multi-programming)의 시대가 되어 컴퓨터를 공유하기 시작했다 프로세스 전환을 통해 CPU의 이용률, 효율성을 개선했다. 시분할(time-sharing)의 시대, interactivity의 중요성 부각 여러 프로그램이 메모리에 동시.. 2021. 10. 28.
PINTOS 2-3주차: USER PROGRAM User Programs 프로젝트 2를 하며 느낀점: 이번 프로젝트는 코드 분석이 전부였다. 다행히 프로젝트2를 통과한 분의 코드를 구할 수 있었다. 먼저 공식 문서를 보며 어떤 것이 필요하고 무엇을 구현해야 하는지 파악했다. 그리고 그 분의 코드를 분석하며 어떻게 요구사항을 맞추었는지 정리했다. 저번과는 달리 코드의 깊이가 상당했다. 함수 하나를 보면 타고 타고 가서 처음에는 압도됐다. 한번 보는 것으로는 이해할 수 없었다. 괜찮다. 2번보고 3번보고 계속 보면 된다. 볼수록 저번에 이해할 수 없었던 부분들이 보이기 시작하고 전체적인 흐름을 알 수 있었다. 실제 구현 위주로 이번 프로젝트를 한 분들도 많다. 그런 분들을 보면서 나도 구현 위주로 했어야 하나 하느 생각도 든다. 하지만 이번 핀토스를 하면.. 2021. 10. 13.
PINTOS 1주차: priority scheduling 1주일 동안 한 것을 정리하려 한다. 짧은 기간이었지만 꽤 많은 것을 공부했다. pintos project1은 priority scheduling에 관한 것이었다. 바로 프로젝트를 하기 전에 scheduling에 대한 이해가 필요했다. CSAPP, youtube 강의, 블로그 등을 통해 scheduling에 대해 공부했다. cpu는 기본적으로 한가지 프로세스 혹은 스레드에 대한 작업을 하지만 우리는 컴퓨터로 여러 작업을 동시에 할 수 있다. 이는 os가 여러 프로세스를 짧게 나누어 번갈아가면서 실행해 동시에 프로세스들이 실행된다고 느끼게 하는 것이다. 예전에는 한 프로세스가 끝날 때까지 다른 작업을 할 수 없었다고 한다고 들은 것 같다. 이를 '동시성 프로그래밍'이라고 한다. 여기서 문제가 생기는 것이 .. 2021. 10. 4.