오래 못 할 짓 하지 않기

[ 운영체제 ] 2. OS Overview (커널, 서비스 종류 , 시스템 콜, 이중모드) 본문

3학년 1학기/운영체제 (OS)

[ 운영체제 ] 2. OS Overview (커널, 서비스 종류 , 시스템 콜, 이중모드)

쫑알bot 2023. 12. 30. 17:35
728x90

OS는 규모가 가장 큰 프로그램 중 하나이다.

따라서, OS가 제공하는 기능은 아주 다양하지만

 

가장 핵심적인 서비스가 있다. ex) 휴대폰 - 여러 기능이 있지만 전화가 핵심

이러한 서비스들을 담당하는 부분을 커널(Kernel)이라고 한다.

그리고 우리가 운영체제를 공부한다는 것은 이러한 Kernel을 공부하는 것과 같다고 보면 된다.

 

(+운영체제이지만, 커널은 아닌 것 = UI)

 

 



 

 

 이중모드 / 시스템 호출

 

사용자가 실행하는 프로그램은 자원에 직접 접근할 수 있을까? or 접근해도 될까?

 

→ NO

 

1) CPU에서 한 프로그램이 실행 중인데, 다른 프로그램에서 접근하는 일이 발생할 수 있다.

2) 메모리에서 데이터들이 꼬일 수 있다.

 

 

따라서, 운영체제는 다른 프로그램이 자원 (CPU,SSD 등등...) 에 접근하려고 할 때

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

(자원 접근 대행)

 

 

 

●  이중 모드

: CPU가 명령어를 [ 사용자 모드 / 커널 모드 ] 로 구분하는 방식

 

1) 사용자 모드

  - 운영 체제 서비스를 제공받지 X

  - 커널 영역의 코드 실행 X

  - 자원 접근 X

 

2) 커널 모드

  - 운영체제의 서비스 받을 수 O

  - 자원 접근 + 모든 명령어 실행 O

 

 

현재 어떤 모드인지 판단하는 Flag 역할을 하는 Supervisor register를 통해서 판단한다.

따라서, 명령어 실행을 CPU가 받고, Flag를 확인한 뒤에 실행 여부를 결정한다.

 

 

●  시스템 호출

: 운영체제의 서비스를 받기 위해 커널 모드로 전환하는 것

  = 자원에 접근하기 위해 커널 모드로 전환

  일종의 Interrupt 이다.

이런 걸 굉장히 많이 할 거임..

 


운영체제의 핵심 서비스

커널에서 다음 세 가지 기능을 대표적으로 받을 수 있다.

  • 프로세스 관리
  • 자원 접근 및 할당
  • 파일 시스템 관리

 

프로세스 관리 

프로세스 == 실행 중인 프로그램 ( == 메모리에 적재되어 실행되고 있는 프로그램 == 수많은 프로세스들이 동시에 실행됨 )

 

프로세스가 실행,생성되고

끝나면 삭제된다.

 

커널은 이렇게 동시다발적으로 생성/실행/삭제되는 다양한 프로세스들을 관리하는 역할을 한다.

(이 관리하는 법을 우리가 배울 예정)

- 프로세스/ 스레드 , 프로세스 동기화, 교착상태 해결

 

 

 

 

 

자원 접근 및 할당 

- CPU 

 : CPU 스케줄링을 배운다 .

   → 어떤 프로세스를 먼저 , 얼마나 오래 실행할까?

 

 

- 메모리

  : 페이징 , 스와핑을 배움

   → 비어있는 메모리 주소에 프로세스를 적재해야하는데

        비어있는 건 어떻게 찾을건지 , 혹은 적재는 어떻게 시킬 것인지.

        실행해야할 프로젝트 전부 다 메모리에 넣을 건지? 굳이 안 넣고 할 수 있을지

 

 

메모리 크기보다 큰 크기의 프로세스일 때

어떻게 할 건지?

 

 

 

- I/O device

 

 

 

파일 시스템 관리

파일 / 폴더에 저장 장치에 보관하는 법을 배운다.

 

(출처)

유튜브 한빛미디어