커널(kernel): OS의 핵심 요소, 중요한 역할 수행
- 컴퓨터 하드웨어와 프로세스의 보안
- 자원 관리
- CPU 스케줄링
- 메모리 관리
- 입출력 관리
- 파일 시스템 관리
- 하드웨어 추상화
운영체제는 커널에서 관리하는 중요 자원에 사용자가 쉽게 접근하지 못하도록 커널 모드와 사용자 모드로 나눈다.
커널모드
- 하드웨어에 직접 접근
- 메모리, CPU 같은 자원 사용
사용자모드
- 커널 모드의 자원에 접근할 수 없게 제한을 둠
- 사용자 모드에서 실행된 프로세스가 자원에 접근하려면 시스템 콜을 호출해 커널에 요청해야 함
시스템 콜: 사용자 모드에서 커널 모드에 접근해 필요한 기능을 수행할 수 있게 하는 시스템 함수
- 커널은 시스템 콜로 받은 요청을 처리한 후 다시 시스템 콜로 결과 값을 반환
- 시스템콜을 사용하여 가능한 것들
- 프로세스 제어
- 파일 조작
- 장치 관리
- 데이터의 유지 보수
- 통신
- 보호
- 대표적인 예
- fork() : 프로세스 생성
- wait() : 부모 프로세스가 자식 프로세스의 수행을 기다리는 것
시스템 콜에서 커널에 매개변수를 전달하는 방법
- 매개변수를 CPU의 레지스터에 직접 전달하는 방식
- 이 방식은 매개 변수의 개수가 레지스터의 개수보다 많은 경우에 문제가 될 수 있어 권장하지 않음
- 매개변수를 메모리에 저장한 후 메모리의 주소 값을 레지스터에 저장하는 방식
- 매개변수를 프로그램의 스택에 push하고 OS에서 pop해 매개변수를 전달하는 방식
'CS' 카테고리의 다른 글
6. 운영체제 - PCB(Process Control block) (0) | 2024.03.05 |
---|---|
5. 운영체제 - 프로세스와 스레드 (0) | 2024.03.05 |
3. 운영체제 - CPU와 메모리 구조 (0) | 2024.03.04 |
2. 운영체제 - 운영체제의 목적 (0) | 2024.03.04 |
1. 운영체제 - 운영체제란? (0) | 2024.03.04 |