hmk run dev

운영체제의 큰 그림 본문

OS

운영체제의 큰 그림

hmk run dev 2024. 3. 2. 21:46

우리가 작성한 프로그램은 대부분 운영체제에 의해 관리되고 실행된다.

 

운영체제는 현존하는 프로그램 중 규모가 가장 큰 프로그램 중 하나

(참고로, 리눅스 운영체제 소스코드 라인수만 해도 2700만줄 이라고 한다)

 

운영체제가 제공하는 기능은 다양하다.

그러나, 가장 많이 사용되는 가장 핵심적인 서비스는 존재한다.

 

컴퓨터 자원에 접근하고 조작하는, 프로그램이 올바르고 안전하게 실행하는 기능등등..

 


커널

 

운영체제의 핵심 서비스를 담당하는 부분

운영체제가 방대한 크기의 프로그램일 지라도 커널은 대동소이하다.

대부분의 전공서는 운영체제에 대해 설명할때 커널에 대해 설명한다.

고로 이 글에서 커널 = 운영체제라고 봐도 무방하다. (UI는 운영체젠에는 속하지만 커널에는 속하지 않음)

 

 

 

시스템 콜과 이중 모드

 

사용자가 실행하는 프로그램은 자원(CPU, RAM, SSD 등등)에 직접 접근할 수 있을까?

놉! 안된다!

일반 응용프로그램이 직접 자원에 접근하는 것은 매우 위엄하며 사이드 이펙트가 일어날 가능성이 높다.

 

 

운영체제는 응용 프로그램이 자원에 접근하려 할 때

오직 자신을 통해서만 접근하도록 하여 자원을 보호한다.

 

즉, 응용프로그램은 운영체제의 도움을 요청하여 자원에 접근한다.

 

이중모드

 

- CPU가 명령어를 실행하는 모드를 크게 사용자 모드커널 모드로 구분하는 방식

 

 

- 사용자 모드

   - 운영체제 서비스를 제공받을 수 없는 실행 모드

   - 커널 영역의 코드를 실행할 수 없는 실행 모드

   - 자원 접근 불가

 

- 커널 모드

   - 운영체제의 서비스를 제공 받을 수 있는 실행 모드

   - 자원 접근을 비롯한 모든 명령어 실행 가능

 

 

시스템 콜

- 커널모드로 전환하여 실행하기 위해 호출

- 일종의 소프트웨어 인터럽트

 

인터럽트란?

더보기

인터럽트란 프로세스 실행 도중 예기치 않은 상황이 발생할 때 발생한 상황을 처리한 후 실행 중인 작업으로 복귀하는 것을 말한다.

 

실제로는 사용자모드와 커널모드를 빈번하게 왔다갔다한다.

 

 


운영체제의 핵심 서비스

 

프로세스 관리

 

프로세스 == 실행 중인 프로그램

수많은 프로세스들이 동시에 실행

 

 

동시다발적으로 생성/실행/삭제되는 다양한 프로세스를 일목요연하게 관리

=> 프로세스아 스레드, 프로세스 동기화, 교착상태 해결

 

자원 접근 및 할당

 

- CPU(스케줄링, 어떤 프로세스를 먼저, 얼마나 오래 실행할까?)

 

 

- 메모리 (페이징, 스와핑 등등..)

- 입출력장치

 

 

 

파일 시스템 관리

 

- 관련된 정보를 파일리라는 단위로 저장 장치에 보관

- 파일들을 묶어 폴더(디렉터리) 단위로 저장 장치에 보관


 

Reference

 

https://www.yes24.com/Product/Goods/111378840?gad_source=1&gclid=CjwKCAiAloavBhBOEiwAbtAJOyom_qz_KHNNuqqD_qi8GXntZRgj9WKOZQfOJeDNaCiQkTh1y8VzzhoCJOQQAvD_BwE 

'OS' 카테고리의 다른 글

교착 상태 해결 방법  (0) 2024.03.16
교착상태(Dead lock)  (0) 2024.03.15
CPU 스케줄링  (0) 2024.03.05
스레드란?  (0) 2024.03.05
프로세스의 개요  (0) 2024.03.03
Comments