본문 바로가기
Computer Science/운영체제

02. 운영체제 구조

by _S0_H2_ 2021. 7. 15.
728x90
반응형

1. 운영체제의 역할

1 ) 응용 프로그램이 요청하는 메모리를 허가하고, 분배한다.

2 ) 응용 프로그램이 요청하는 CPU 시간을 제공한다.

3 ) 응용 프로그램이 요청하는 IO Devices 사용을 허가/제어한다.

 

운영체제는 사용자 인터페이스를 제공한다.

* 쉘(shell) : 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램(CLI, GUI)

 

운영체제는 응용 프로그램을 위해서도 인터페이스를 제공한다.

* API (Application Programming Interface) : 요청서의 집합이라고 보면 좋음

* 보통은 라이브러리 형태로 제공한다.

 

2. 시스템콜

: 운영체제는 커널모드와 사용자모드로 나뉘어 구동되는데, 이 때 파일 읽기/쓰기/메세지 출력 등의 대부분을 커널모드를 사용한다. 시스템콜은 이러한 커널 영역의 기능을 프로세스가 하드웨어에 직접 접근해서 사용할 수 있게 해준다.

 

각 시스템 콜에는 번호가 할당되고 시스템 콜 인터페이스는 이러한 번호에 따라 인덱스 되는 테이블을 유지한다.

 

  • 시스템 콜의 종류 : 프로세스 제어, 파일 조작, 장치 관리, 시스템 정보 및 자원 관리, 통신 관련

 

3. 운영체제를 만들 때 개발 순서

1 ) 운영체제를 개발한다(kernel)

2 ) 시스템 콜 개발

3 ) C API 개발

4 ) Shell 프로그램 개발

5 ) 응용 프로그램 개발

 

4. 사용자모드와 커널모드

1 ) 사용자 모드 : 응용 프로그램이 사용

2 ) 커널 모드 : OS가 사용

 

응용 프로그램에서 API를 통해 시스템콜을 요청하면 커널 영역에서 요청을 처리한다.

 

따라서 커널 모드로 실행하려면, 반드시 시스템 콜을 사용해야한다. 

EX ) 코드에서 open(data.txt) 를 실행한다면

  • open() 시스템콜 호출
  • 커널 모드로 전환
  • open() 함수를 처리하는 sys_open() 커널 함수 호출
  • 파일 열기로 레벨 연산 수행
  • 사용자 모드로 전환
  • open() 함수 이후의 프로그램을 계속해서 실행

 

 

728x90
반응형

'Computer Science > 운영체제' 카테고리의 다른 글

06. 인터럽트  (0) 2021.07.31
05. 프로세스 상태와 스케쥴러  (0) 2021.07.26
04. 스케줄링 알고리즘  (0) 2021.07.19
03. 프로세스 스케쥴링  (0) 2021.07.18
01. 운영체제 역할과 응용 프로그램  (0) 2021.06.21