CS/운영체제
[운영체제 ] 1. 운영체제 구조 - 커널 , 시스템 콜 , 쉘 , API
쉽코기
2021. 9. 18. 01:31
1. Application ( 응용 프로그램 ) , 운영 체제 , 하드웨어의 관계
- 운영체제는 응용 프로그램이 요청하는 메모리를 허가 및 분배한다.
- 운영체제는 응용 프로그램이 요청하는 CPU 자원을 규칙에 맞게 제공한다.
- 운영체제는 응용 프로그램이 요청하는 IO Devieces 사용을 허가 / 제어한다.
- 응용프로그램이 종료되면 운영체제는 응용프로그램이 점유하고 있던 메모리와 하드웨어를 회수한다.
**프로그램과 프로세스의 차이
: 하나의 프로그램도 여러개의 프로세스를 생성할 수 있다. 프로세스는 메모리를 할당 받고 cpu 에서 실행되고 있음을 의미한다. 예를들어 여러개의 메모장을 사용한다면 한개의 프로그램에서 여러개의 프로세스가 생성되는 것이다.
2. 커널모드
- 파일 입출력, 프로세스 관리 , 하드웨어 접근등 핵심적인 기능을 수행 할수 있는 상태
- 상용자 모드 (응용프로그램이 사용함) 에서 시스템 콜을 사용해서 커널모드로의 전환이 가능
- CPU protect ring 의 level 0 에 해당함
3. 쉘
- 사용자가 OS 기능과 서비스를 조작 할 수 있는 사용자 인터페이스(UI) 를 제공하는 응용 프로그램
- 쉘은 GUI , CLI 2가지로 나뉘며 GUI 는 그래픽을 이용한 OS 와의 커뮤니케이션을 CLI 는 명령 프롬프트 창을 이용한 커뮤니케이션을 제공한다.
4. 시스템콜
- 운영체제의 기능을 호출하는 함수 이다.
- user 혹은 응용프로그램이 직접적으로 kernel 에 접근할 수 없으므로 kernel 에서 수행해야할 기능을 시스템 콜을 통해 수행한다.
- 일반적으로 직접 사용하기 보다는 시스템 콜들을 내포하고 있는 라이브러리(API)를 통해 간접적으로 사용한다.