CS/운영체제&네트워크

운영체제 대략적인 큰 그림

린예라 2022. 3. 29. 10:45

운영체제 개념 도식화

 

User

Application / Shell

API / Library

System Call

Operating System

HardWare(CPU, MEMORY, STORAGE, NETWORK ...)

 

운영체제가 사용자를 위해 제공하는 인터페이스 > 쉘, 쉘도 일종의 응용프로그램이라 API 사용.

우리가 사용하는 컴퓨터의 바탕화면도 GUI환경의  쉘이라고 볼 수 있음 

운영체제가 응용프로그램을 위해 함수 형태로 제공하는 인터페이스 > API 혹은 Library(함수를 종류별로 묶은느낌)

운영체제는 시스템콜을 제공, 이것도 응용프로그램을 위한 인터페이스 제공이라 볼 수 있음 > 이 시스템콜을 조금 더 쉽게 사용하게 하는게 API 그러므로 API는 시스템콜이 들어감

시스템콜이 복잡 할 수 있으니 사용하기 쉽게 한번더 포장? 하는 느낌 > API

 API는 시스템콜이 응용프로그램을 위해 제공한 인터페이스라고도 할 수 있음.

시스템콜이나 API나 결국 운영체제가 응용프로그램을 위해 제공하는 인터페이스라는 목적은 똑같음. 단지 사용하기 쉽게 한번 더 포장했나 안했나 차이.

API와 시스템콜은 운영체제에 요청하는 형식의 일종의 요청서라고 볼 수 있음

 

사용자가 컴퓨터를 사용한다 > 쉘이나 응용프로그램을 작동한다 > 프로그램 내부의 API가 상황이나 조건에 맞게 실행된다 > API 내부에 포함되어있는 시스템콜이 호출된다 > 시스템콜은 그에 맞는 운영체제 내의 커널함수를 호출하고 동작한다 > 운영체제가 하드웨어 혹은 시스템자원에 접근한다

 

인터페이스는 사용자가 사용하기 더 쉽게 해주기 위해 제공하는 장치나 시스템이라고 할 수 있다.

 

결국 사람이 직접적으로 컴퓨터 하드웨어를 사용하기 어려우니까 사용하기 쉽게 중간에 단계가 계속 생기는 느낌.

직접 하드웨어를 사용하기 어려워요 > OS생김,

OS를 직접 사용하기 어려워요 > 시스템콜 생김,

시스템콜 직접 사용하기 어려워요 > API 생김,

API 직접 사용하기 어려워요 > 응용프로그램, 쉘 생김 같은 느낌임.

이게 없으면 최초의 컴퓨터처럼 0,1 같은 명령어로 컴퓨터를 사용해야겠지;;........

 

OS의 2가지모드

그런데 여기서 OS에 접근하는데에 있어서 두가지 모드가있다. 응용프로그램에 의해 OS의 핵심부분인 커널이나 하드웨어가 손상되는것을 방지하는것이 이유일것이다. OS나 하드웨어는 망가졌을때 고치거나 대체하는게 비용적으로나 시간적으로나 더 수고로우니까 더 안전하게 보호해야지. > 그래서 사용자모드와 커널모드 만듬

사용자모드와 커널모드.

시스템콜 부터는 커널모드로 실행된다. 커널모드로 실행하려면, 반드시 시스템콜을 사용해야함.

ex) c언어를 사용해 파일을 여는 코드를 짜서 실행했다고 해보자

open()시스템 콜 호출 > 커널모드로전환 > open()함수를 처리하는 커널 함수 호출(OS에 진입) > 파일열기관련한 작동 수행, 스토리지 접근 > 사용자모드로전환 > 응답, 혹은 이후의 프로그램을 계속 실행.

 

 

 

 

 

'CS > 운영체제&네트워크' 카테고리의 다른 글

스레드(쓰레드)란?  (0) 2024.02.22
인터럽트 동작 과정  (0) 2024.02.20
스케줄링 알고리즘  (0) 2022.04.02
운영체제 혹은 컴퓨터의 역사  (0) 2022.03.14
운영체제란 무엇인가?  (0) 2022.03.13