반응형
커널이란?
- 커널은 운영체제 중 항상 메모리에 올라가있는 운영체제의 핵심 부분. 파일 입출력, 프로세스 관리 등과 같이 운영체제의 기능을 담당. 하드웨어와 응용프로그램 사이에서 인터페이스 제공하는 역할, 컴퓨터 자원 관리하는 역할.
- 커널은 사용자가 시스템 콜을 통해 컴퓨터 자원을 사용할 수 있는 자원 관리자.
- 커널의 유형: 모놀리식, 마이크로 커널 - https://minkwon4.tistory.com/295
- 커널에 사용자 모드로 접근할 수 없다. 따라서 커널의 기능을 사용하기 위해 운영체제에서 시스템 콜 제공.
시스템 콜이란?
- 커널이 제공하는 서비스에 대해 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스
- 시스템 콜은 커널과 사용자 사이의 인터페이스 역할을 하는 것으로 쉘(Shell)에서 명령어나 서브 루틴 형식으로 운영체제의 기능을 호출할 수 있음. 즉, 사용자가 직접 커널에 접근을 할 수 없기 때문에 시스템 콜을 활용해야함
- 보통 시스템 콜을 직접 사용하기 보단, 해당 시스템 콜을 사용해서 만든 각 언어별 라이브러리(API)를 사용함→운영체제의 기능을 호출하는 함수
- →즉, 사용자 프로세스가 소프트웨어 인터럽트를 통해 커널을 이용하기 위한 서비스를 요청하는 하나의 방법
시스템 콜 예시
cp a.txt b.txt : 파일의 복사본을 만들어 내려고 하면?
- open a.txt, open b.txt : a.txt 파일을 열고 b.txt파일을 새로 만들어냅니다.
- read a.txt => write b.txt : a.txt의 내용을 읽고 b.txt에 내용을 씁니다.
- close a.txt b.txt : 두 파일을 닫습니다.
위 과정에서 open 2번, read/write, close 2번 총 6번의 시스템 콜이 일어났습니다.
시스템 콜 유형
- 프로세스 컨트롤
- 파일 매니지먼트
- 디바이스 매니지먼트
- 정보관리
- 커뮤니케이션
- 보안
시스템 콜 처리 방식
- 사용자 프로세스가 시스템 콜을 요청하면 제어가 커널로 넘어옴(사용자 모드→ 커널 모드)
- 커널은 내부적으로 각각의 시스템 콜을 구분하기 위해 기능별로 고유번호를 할당하고 그 번호에 해당하는 제어루틴을 커널 내부에 정의
- 커널은 요청받은 시스템 콜에 대응하는 기능번호를 확인
- 커널은 그 번호에 맞는 서비스 루틴을 호출
- 서비스 루틴을 모두 처리하고 나면 커널모드에서 사용자 모드로 다시 전환
쉘이란?
- 운영체제가 사용자 인터페이스를 제공하는 방식.
- 쉘을 통해 사용자가 운영체제의 기능과 서비스 조작할 수 있도록 인터페이스 제공
- 터미널 환경, GUI 환경 두가지가 있다.
운영체제의 듀얼모드
사용자와 운영체제는 시스템 자원을 공유.
사용자가 메모리 내의 주요 운영체제 자원을 망가뜨리는 것을 막기 위해 시스템 자원 접근을 제한하는 보호 장치
→ 사용자 모드/커널 모드로 나뉨.
반응형
'코딩기록 > CS' 카테고리의 다른 글
[OS] 단기, 중기, 장기 스케줄러 (0) | 2023.03.09 |
---|---|
[OS] 프로세스 메모리 구조 (0) | 2023.03.09 |
[OS] 프로세스 (0) | 2023.03.08 |
[OS] 인터럽트 (0) | 2023.03.08 |
[OS] 운영체제 (0) | 2023.03.08 |