일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 개발공부
- 알고리즘
- execution context
- OS
- context switching
- 운영체제
- java
- node.js
- REACT
- 프로그래머스
- 파이썬
- 파이썬 알고리즘 인터뷰
- 자바
- JavaScript
- Python
- 글또
- 자바스크립트
- useState
- 비동기
- Zerobase
- codestates
- Operating System
- 코드스테이츠
- 자료구조
- react 기초
- python algorithm
- 컴퓨터공학
- typeScript
- algorithm
- Computer Science
- Today
- Total
Back to the Basics
[Computer Science][제로베이스 ]-운영체제 - System call & kernel 본문
강의를 듣고 내용을 간단히 정리한 포스팅 입니다.
<강의 요약 System call>
OS는 사용자, Application Program에 Interface를 제공한다.
운영체제는 사용자에게 인터페이스를 제공한다. SHELL이라는 응용프로그램을 통해 사용자가 OS의 기능을 조작할 수 있도록 한다. SHELL이란, 사용자와 OS 간의 Interface이며 CLI에서 Terminal 또는 GUI 환경 두 종류가 있다.
운영체제는 Application을 위한 인터페이스도 제공하며 API라고 한다. API는 Application Programming Interface의 약자이며 함수로 제공된다. 보통 API들을 묶어 Library의 형태로 제공된다.
System call
System call은 운영체제의 기능을 사용할 수 있는 함수 또는 명령어이다. 운영체제가 제공한다. API 내부도 결국 이 System call을 통해서 OS의 기능을 요청한다. 응용 프로그램을 위한 Interface이며 OS의 각 기능을 사용할 수 있도록 한다.
In computing, a system call (commonly abbreviated to syscall) is the programmatic way in which a computer program requests a service from the kernel of the operating system on which it is executed. (Wiki)
OS의 기능 정리
- OS는 H/W와 응용프로그램을 관리한다.
- 사용자 Interface를 제공하기 위해 shell 프로그램을 제공한다.
- 응용프로그램이 운영체제 기능을 요청하기 위해서, 운영체제는 시스템 콜을 제공한다.
- 시스템 콜을 직접 사용하기보다는, 해당 시스템 콜을 사용해서 만든 각 언어별 라이브러리(API)를 사용한다.
<강의 요약 Kernel Mode>
Kernel Mode는 CPU Protection Rings에서 0번째 Ring에 해당되며 CPU의 권한 모드 중 하나이다. "특권"명령어와 자원을 사용할 수 있게 하는 Mode이며 OS만이 접근 가능한 영역이다.
Application이 특수한 자원 또는 명령어를 사용하기 위해서는 API를 이용하여 System call을 통해 응용프로그램이 OS에 요청을 하고, OS에 의해 Kernel 모드에서 해당 명령어 및 자원을 Application에 전달을 해준다.
예를 들어, file을 open 하는 것은 메모리에 접근을 해야 하므로 커널 모드로 접근이 되어야 하는 영영이다. 코드에서 open()이라는 명령어를 실행하면 open()의 API ⇒System call 호출을 통해 kernel모드로 전환한다. 여기서부터는 OS가 실행하는 영역이다. open() 함수의 커널 함수를 호출하고 파일을 open 하여 사용자 모드로 전환 후 응용프로그램으로 전달한다.
Kernel 영영 : Wiki 설명
- The kernel is a computer program at the core of a computer's operating system and has complete control over everything in the system (Wiki)
- A kernel connects the application software to the hardware of a computer
요악
- 운영체제는 시스템 콜을 제공한다
- 프로그래밍 언어별로 운영체제 기능을 활용하기 위해, 시스템 콜을 기반으로 API를 제공한다.
- 응용 프로그램은 운영체제 기능 필요시, 해당 API를 사용해서 프로그램을 작성한다.
- 응용프로그램이 실행되어서 운영체제 기능이 필요한 API를 호출하면 , 시스템 콜이 호출되어서 커널 모드로 변경되어 OS 내부에서 해당 명령이 실행되고, 다시 응용프로그램으로 돌아간다.
'Computer Science' 카테고리의 다른 글
[Computer Science][Codestates] - HTTP/Network 기초 - 2 : Chrome Error , Chrome Network Tap 사용법 (0) | 2021.10.24 |
---|---|
[Computer Science][Codestates] - HTTP/Network 기초 - 1 : Client -Server Architecture , HTTP, IP, Port (0) | 2021.10.24 |
[Computer Science][CS50] 컴퓨터와 컴퓨팅 - TOPIC2 (0) | 2021.08.30 |
[Computer Science][CS50] 컴퓨터와 컴퓨팅 - TOPIC1 (0) | 2021.08.30 |
[Computer Science] 선언형 프로그래밍 VS 절차형 프로그래밍 (2) | 2021.08.05 |