dev-writeup-2024 / march

개발 1일 1글 스터디
2 stars 0 forks source link

[03-05] 운영체제 2편 - 운영체제의 구조 #8

Open Kjm04175 opened 8 months ago

Kjm04175 commented 8 months ago

서론

잡설

구조를 이해하는 것은 정말 중요한 것 같습니다. 앞으로 진행할 커리큘럼을 대충 살펴보는 역할을 수행하기도 하고, 디테일한 내용을 다룰 때도 전체 구조는 심심잖게 등장하거든요.

C언어를 배우기 전 배웠던 데이터 저장 구조나 유니티의 이벤트 함수 실행 구조 등이 그러했죠.

오늘은 운영체제의 기초 구조에 대해 공부해보고자 합니다. 기초적인 내용이지만, 몇 가지 바리에이션이 존재하는 만큼 각각의 특징과 장단점을 확실히 알고 넘어가는 것을 목표로 진행하겠습니다.

int main()

System call

운영체제 구조로 넘어가기 전, System call이라는 동작을 이해하고 가도록 하겠습니다. 운영체제의 핵인 '커널(kernel)'은 스스로를 보호하기 위해 사용자에게는 제한된 인터페이스만 제공합니다. 이 인터페이스를 system call이라고 합니다.

사용자나 응용프로그램은 컴퓨터 자원을 이용하기 위해 필수적으로 이 시스템 콜을 이용해야 합니다.

왜 이런 구조를 선택한 것일까요?

image

사용자를 내부 자원에 직접 접근하게 하는 것은 위 사진과 같은 것입니다. 지구상의 모든 사용자가 초지성을 갖고 완벽한 컴퓨터 이용을 수행한다면 문제가 없겠지만, 사용자에게 많은 자율성을 부여했을 때 컴퓨터 시스템은 파괴될 확률이 큽니다.

시스템 콜은 운영체제를 통해서 컴퓨터가 죽지 않을 정도의 커뮤니케이션을 제공하기 때문에 안전합니다!

위 그림은 system call이라고 할 수 있을까요? 조카(사용자)가 자원(장난감, PC 등)에 접근하는 것을 제가 제어하고 있으니까요.

저는 아니라고 봅니다. 조카가 제게 자유롭게 dynamic한 질문을 하고 있으니까요.

이런 느낌으로 팻말 중 하나를 선택하는 느낌의 정해진 요청만 할 수 있어야 system call에 가깝다고 생각합니다.

드라이버

드라이버는 커널과 하드웨어 사이의 인터페이스입니다. 컴퓨터와 연동되는 하드웨어는 수도 없이 많지만, 윈도우 개발자들이 모든 하드웨어에 대한 코드를 작성할 수는 없는 법입니다.

이 때, 각 하드웨어의 개발자가 운영체제에 맞는 소프트웨어를 개발하고 배포하는데, 이것을 드라이버라고 합니다.

커널의 구성 및 종류

단일형 구조 커널

image

단일형 구조 커널은 운영체제 초창기에 이용되었던 구조입니다. 특별한 구조가 있다기 보다는 모든 기능들이 구분 없이 하나의 계층에 구현되어 있습니다.

장점

단점

계층형 구조 커널

image

계층형 구조 커널은 비슷한 기능을 갖는 모듈을 하나로 묶어 계층을 만들고, 그 계층 간 통신을 진행함으로 운영체제를 구현하는 방식입니다.

image

장점

단점

마이크로 구조 커널

image

마이크로 구조 커널은 계층형 구조의 문제를 해소하기 위해 나타난 구조입니다. 운영체제는 프로세스 관리, 메모리 관리, 프로세스 관리 등 가장 기본적인 기능만을 제공하고 나머지는 사용자 영역에 구현하는 것이죠.

애플의 운영체제인 MAC OS와 IOS가 이런 구조를 채택하고 있다고 합니다.

장점

단점

내일 또 봐요~

참조

https://ardor-dev.tistory.com/22

steammando commented 8 months ago

마우스집착남

snaag commented 8 months ago

ㅋㅋㅋㅋㅋㅋ 아니 저렇게 적절한 짤들은 어떻게 찾는거에요???? 그림도 넘 재밌군요 ㅋㅋㅋㅋㅋ