다양한 기록

가상화, 병행성, 영속성 본문

운영체제

가상화, 병행성, 영속성

라구넹 2024. 3. 4. 19:02

https://pages.cs.wisc.edu/~remzi/OSTEP/

 

Operating Systems: Three Easy Pieces

Blog: Why Textbooks Should Be Free Quick: Free Book Chapters - Hardcover - Softcover (Amazon) - Buy PDF - EU (Lulu) - Buy in India - Buy Stuff - Donate - For Teachers - Homework - Projects - News - Acknowledgements - Other Books Welcome to Operating System

pages.cs.wisc.edu

 

운영체제 - 쓰기 편한 방식으로 정확하고 효율적으로, 메모리 공유, 장치 상호작용, 등등을 해줌


Virtualizing the CPU

 

viretualization: 물리적인 리소스(프로세서, 메모리 --)를 가상화해서 쓰기 편하게 해줌

그래서 간혹 운영 체제를 버츄얼 머신이라고 부름

버츄얼 머신으로서의 특징을 나타내려면 인터페이스가 필요: 시스템 콜

=> OS는 표준 라이브러리를 제공

 

리소스 매니저: 운영체제는 리소스 할당도 함

 

시스템 콜 Spin(1) -> 1초 세고 리턴

스핀 1개씩 넣고 같은 함수 여러 개로 출력 실험 -> 싱글 프로세서에서 동시에 출력됨

=> virtualizing CPU, 프로세서가 하나여도 무한히 있는 것처럼 프로그램들을 작동시킴

 

특정 시간에 두 프로그램이 있으면 뭘 먼저 처리하지? < OS 정책에 따라

정책은 다양한 상황에서 사용됨. 기법에 대해 배우면서 알아볼 것.

 

이러한 역할을 하기에 리소스 매니저이다.


Virtualizing memory

 

프로세스는 유니크한 PID를 가지고 있으며, 프로세스는 독립적으로 실행된다.

동시에 여러 프로세스가 포인터가 가리키는 게 같은 곳인 것 같아도 가상화 되어 있어서 실제로는 독립적임


Concurrency

 

OS는 여러 프로그램 저글링 중..

멀티스레딩 하고 있을 때, 레지스터에서 로드하고 더하고 저장하고 하는 작업이 한번에 실행되는 게 아님

멀티스레딩으로 인해 값이 이상하게 바뀌는 경우가 있을 수 있음


Persistence

 

데이터를 잃어버리면 안됨.

애플리케이션을 위해서 추상화를 하는 건 아니고, 대신 파일의 정보를 공유함

파일 시스템은 크래시 방지를 위해 바로바로 쓰지 않고 쓰기 프로토콜을 모아두고 조심히 처리함


 

목표: OS 부하 최소화, 애플리케이션 간 protection, reliability, 에너지 효율성, 보안, mobility


시스템 콜 - 하드웨어 권한 레벨 - 커널 모드

프로시저 콜 - 유저 모드