OS 강의

SL·2024년 3월 5일
0

In Jungle

목록 보기
7/8

오늘은 pintos프로젝트를 위한 OS강의를 들었다. 프로젝트에 직접적으로 도움이 되는 내용은 적었지만, 또 어딘가에서 연결고리가 생기지 않을까 해서 열심히 들었다. 특히 배경지식이 더많이 궁금한 나에게는 유익한 시간이었다.


서론

대부분의 OS 개념서에는 process, thread, unit memory, file system 등 단편적인 지식들로 알려줌. 그리고 받아들이는 사람들이 '아, 이게 OS구나'라고 생각함. 단서들, 부품들 부터 배우는 Bottom Up 방식은 초보자들에게 쉽게 접근하기 좋은 방법일 수 있다. 하지만, 중급닌자개발자가 되려는 우리에게는 이제 Top Down 방식의 접근이 필요하다. 이러한 접근 방식은 OS를 전체적으로 이해하는데 중요하다.

프로그램의 2가지 요소 = 코드 + 데이터 = 네모로 추상화

시간적 지역성(캐싱), demand paging을 잘 지키는 것이 중요

System design 기법의 토대인 principle은, transferable 생각으로 다른 곳에 적용이 가능함. 기계(HW)에 접근하는 코드가 다 비슷해서, 이를 API로 만들면서 HW를 숨기려는 것이 OS의 탄생배경.


ABSTRACTION

OS의 가장 주요한 키워드이자 첫 단원 제목. 강의목차가 3개로 구성되어 있는데 abstraction, protection&isolation, sharing이다.

Top Down 으로 보는 OS

SW디자인의 철학
OS에서 가장 중요한 것?
layers of abstraction vs problem decomposition

problem decomposition : problem을 작게 만들거나, 모듈화 하라. 안그러면 문제의 크기가 커질 때마다, 복잡도가 지수적으로 증가할 것이다.

거의 같은거같다. 하나는 문제의 해결법, 하나는 문제의 해결법으로 구현되어진 방법? 느낌

그래서 abstraction이 뭐냐?

이해하기 쉽게 디테일을 생략 시킨 것.

ex) 인터페이스 디자인 :

--------------------------------------------------------------------------------
java

자바 : 들어가면 코드 2줄 있음

----
또다른 언어

: 인터페이스가 좁고 많이 들어간다.

OS designer의 관점에서 본 process

사용이 쉽고, 관리하기 쉽고, 보호하기 용이하게!
-> 프로세스에 담자!

CPU -> Virtual CPU -> thread
Memory -> Virtual Address space
Store -> file

이 모든게 process안에 담긴다. 그럼 process는 무엇의 추상화? 머신, 컴퓨터!

행렬컨셉 역시 대부분의 매핑에서 활용됨. thread scheduler, file system 등.

role of hard : machine, role of soft : policy

page fault handler는 심장 같은것. 여기가 복잡하면 안됨.


여담

내용이 좀 퍼져있는 느낌이라 정리하기가 힘들다. 양도 많아서 그런 것 같다.

0개의 댓글

관련 채용 정보