커널
운영체제의 핵심 부분
→ 시스템의 자원을 관리
프로세스 관리, 메모리 관리, 파일 시스템 관리, 장치 드라이버 관리, 하드웨어 자원 관리 등등
커널은 사용자와 직접 상호작용 할 수 없다.
⇒ 명령어 해석기를 사용하여 커널과 사용자가 상호작용함
대표적인 명령어 해석기가 쉘 프로그램
- 시스템이 최초로 구동될 때, 커널은 메모리에 적재되며, 메모리에 상주하면서 여러 기능 제공
- 가상 자원과 물리 자원을 모든 사용자에게 할당 및 제어
- 시스템 콜 인터페이스 제공
응용 프로그램과 커널 간의 인터페이스 제공
- 입출력 관리 // 디스크 읽기/쓰기, 네트워크 통신, 키보드 입력, 화면 출력 등 포함
- 추상화 제공 // 복잡한 작업들을 추상화하여 간단한 인터페이스 제공 Ex) 시스템 콜
- 인터럽트 처리 // 하드웨어 인터럽트 처리
- 보안 및 권한 관리 // 사용자 인증, 커널 모드, 사용자 모드
시스템 자원에 대한 접근을 제어하고 보안을 유지한다.
커널은 크게 파일 입출력을 담당하는 파일 서브 시스템과 프로세스 제어 서브 시스템으로 구성된다.
!! 그 외에도 구성 요소가 존재할 수 있음
Ex) 메모리 관리 서브시스템 (VM, 페이징, 세그멘테이션 등의 기능 담당)
파일 서브 시스템
메모리, 외부 장치에 데이터를 전송하거나 블록 단위로 입출력을 실행할 때 메모리의 일부를 버퍼에 할당하고, 이것을 사용자의 주소 공간과 외부 장치 사이에 두는 디스크 캐시 방법으로 파일을 관리
- 파일 공간 할당, 파일 접근 제어, 버퍼 관리, 캐싱, 자유 공간 관리 데이터를 가져오는 역할 수행
추가적으로 다양한 파일 시스템 형식 지원하고 관리 // FAT, NTFS, ext4 등
EX) VFS는 가상 파일 시스템으로 다양한 파일 시스템을 추상화하여 일관된 인터페이스를 제공
- 프로세스는 시스템 콜을 통해 파일 서브 시스템과 상호작용한다.
open(), read(), write(), close() 등등
- 장치 드라이버는 주변 장치를 제어하는 모듈로 다른 시스템을 임의 메모리로 보이게 한다.
파일 시스템 VS 파일 서브 시스템
파일 시스템 - 파일을 저장, 조직, 검색하는 방법을 정의하는 더 넓은 개념
파일 서브 시스템 - OS 커널 내에서 파일 시스템을 구현하고 관리하는 부분
즉, 파일 서브 시스템은 파일 시스템의 구현체
프로세스 제어 서브 시스템
멀티태스킹 운영체제의 핵심 기능 담당
프로세스의 동기화와 프로세스 간 통신, 프로세스 간 메모리 관리, 프로세스 스케줄링과 디스패칭
문맥교환, 프로세스 상태 관리 등등 담당
프로세스를 제어하는 시스템 콜에는 fork(), exec(), wait(), signal() 등이 있다.
사용자 모드
일반적인 응용 프로그램이 실행되는 제한된 권한 모드
즉, 데이터 입출력 같은 특권 모드에서 실행할 수 있는 명령어를 실행할 수 없음
또한 커널 메모리 영역에 직접 접근 불가
커널 모드
일반 명령어 외에 특별한 명령어도 모두 수행할 수 있는 특권 모드
이 경우 시스템 콜을 호출하여 사용자 모드에서 커널 모드로 전환하고 특권 명령어를 수행한다.
즉, 시스템은 시스템 콜을 통해 커널의 주요 기능을 제공한다.
**
프로세스가 커널 모드로 진입하는 방법은 인터럽트, 오류, 트랩 등이 있다.
'컴퓨터 사이언스' 카테고리의 다른 글
인터럽트 (0) | 2024.11.01 |
---|---|
시스템 콜 (0) | 2024.10.30 |
원자적 실행 (Atomic Operation) (0) | 2024.10.28 |
교착상태 (0) | 2024.10.26 |
경쟁상태(Race Condition) (0) | 2024.10.25 |