개발세발

03. 운영체제의 구조 본문

코딩공부/OS

03. 운영체제의 구조

뉼👩🏻‍💻 2022. 12. 23. 09:55
728x90
반응형
SMALL

 

📍커널 kernel

: 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아 놓은 것

 

📍운영체제 

- 인터페이스 : 사용자와 응용 프로그램에 인접하여 커널에 명령을 전달하고 실행 결과를 사용자와 응용 프로그램에 돌려줌

- 커널 : 운영체제의 핵심 기능을 모아 놓음 

 

➡️ 커널과 인터페이스를 분리하여, 같은 커널을 사용하더라도 다른 인터페이스를 가진 형태로 제작할 수 잇음 

- 같은 커널이라도 다른 인터페이스가 장착되면 사용자에게는 다른 운영체제처럼 보임 

 

 

 

📍시스템 호출 system call

: 커널이 자신을 보호하기 위해 만든 인터페이스 

- 커널은 사용자나 응용프로그램으로부터 컴퓨터 자원을 보호하기 위해 자원에 직접 접근하는 것을 차단함

-  자원을 이용하려면 시스템 호출이라는 인터페이스를 이용하여 접근해야 함 

➡️ 운영체제는 사용자나 응용 프로그램이 하드웨어에 직접 접근하지 못하도록 막음으로써 컴퓨터 자원을 보호함 

ex. 내가 커피 머신을 사용해서 커피를 내리는 것이 아니라 숙련된 직원에게 주문해서 커피를 내리게 하는 것 

 

- 시스템 호출은 커널이 제공하는 시스템 자원의 사용과 연관된 함수 

- 응용프로그램이 하드웨어 자원에 접근하거나 운영체제가 제공하는 서비스를 이용하려 할 때는 시스템 호출을 사용해야 한다 

- 운영체제는 커널이 제공하는 서비스를 시스템 호출로 제한하고 다른 방법으로 커널에 들어오지 못하게 막음으로써 컴퓨터 자원을 보호한다 

 

➡️ 응용프로그램과 커널의 인터페이스가 '시스템 호출'

 

 

📍API (Application Programming interface) - 응용 프로그램 인터페이스

-응용 프로그램이 자신과 연관된 프로그램을 만들 수 있도록 제공하는 인터페이스 

 

 

📍SDK(System Developer's Kit) - 시스템 개발자용 키트 

- 프로그램 개발자를 위해 API 및 API 사용 매뉴얼뿐만 아니라 프로그램 개발에 필요한 코드 편집기와 에뮬레이터 같은 각종 개발용 응용프로그램까지 하나로 묶어서 배포하는 개발 툴

 

 

📍드라이버 driver

: 커널과 하드웨어의 인터페이스 

- 커널은 입출력의 기본적인 부분만 제작하고, 하드웨어의 특성을 반영한 소프트웨어를 하드웨어 제작자에게 받아 커널이 실행될 때 함께 실행되도록 함 

: 이때 하드웨어 제작자가 만든 소프트웨어를 디바이스 드라이버라고 부름 

 

 

📍커널

핵심 기능 설명
프로세스 관리 프로세스에 CPU를 배분하고 작업에 필요한 제반 환경을 제공
메모리 관리 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상공간을 제공
파일 시스템 관리 데이터를 저장하고 접근할 수 있는 인터페이스를 제공
입출력 관리 필요한 입력과 출력 서비스를 제공
프로세스 간 통신 관리 공동 작업을 위한 각 프로세스 간 통신 환경을 지원 

 

 

- 단일형 구조 커널 monolithic architectrue 

: 초창기의 운영체제 구조, 커널의 핵심 기능을 구현하는 모듈들이 구분 없이 하나로 구성되어 있음 

 

- 계층형 구조 커널 latered architecture

: 비슷한 기능을 가진 모듈을 묶어서 하나의 계층으로 만들고 계층 간의 통신을 통해 운영체제를 구현하는 방식 

 

- 마이크로 구조 커널 micro architecture 

: 운영체제가 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본적인 기능만 제공

728x90
반응형

'코딩공부 > OS' 카테고리의 다른 글

05. CPU와 메모리  (0) 2022.12.27
04. 컴퓨터의 기본 구성  (0) 2022.12.26
운영체제의 역사  (0) 2022.12.22
CPU bound, io bound  (0) 2022.12.20
운영체제란  (0) 2022.12.20