- 컴퓨터의 자원을 효율적으로 관리하고, 사용자가 컴퓨터를 효과적으로 사용할 수 있도록 환경을 제공하는 프로그램의 모임
- 메모리, 프로세스, 입출력 등을 관리하고 사용자 인터페이스를 제공
- 리눅스, 윈도우 등
※ 파일은 커널 모드의 구성 요소에 접근하기 위한 인터페이스 -> tcp/ip에 접근하기 위한 파일이 socket
Shell과 Kernel
- Shell : 사람이 이해하기 쉬운 형태의 명령어를 입력하면 이를 해석해서 커널에 전달해주는 역할
- Kernel : 사용자가 쉘을 통해 입력한 명령어를 기계가 이해할 수 있는 표현으로 바꾸어 전달해주는 역할, 하드웨어를 제어하고 시스템 자원 관리
유저모드와 커널모드
- 유저모드 : 유저가 접근할 수 있는 영역을 제한두고, 프로그램의 자원에 함부로 침범하지 못하는 모드
- 커널모드 : 모든 자원에 접근, 명령할 수 있음
- 디바이스 드라이버 : 특정 하드웨어나 장치를 제어하기 위한 커널의 일부분으로 동작하는 프로그램, 컴퓨터를 구성하는 다양한 입출력 장치마다 각각 장치 드라이버가 프로그램 커널에 통합되어 실행됨
- System Call : 프로세스가 유저모드에서 실행되다가 특별한 요청이 필요할 때 kernel에 요청하는 함수
- Interupt
- 외부 인터럽트 : 정전, CPU의 기능적 오류, 외부 신호(ex. ctrl + alt + delete), 입출력
- 내부 인터럽트 : Division by zero, Overflow/Underflow, 기타 Exception
- DirectX : 애플리케이션에서 어떤 동작을 수행할 때 유저모드에서 하드웨어까지 각 단계별로 데이터를 전달하면서 다수의 인터럽트 및 비효율적인 메모리 사용이 발생해 성능 저하 -> 응용 프로그램이 하드웨어에 직접 접속하게끔 만들어서 고속 처리를 가능하게 함
- DMA(Direct Memory Access) : DirectX와 같이 통신에서 데이터를 받을 때 데이터 복사를 통한 비효율적인 메모리 사용을 없애기 위해 복사하지 않고, 미리 할당해놓은 메모리에 바로 데이터를 받음 cf) 가상화머신에서 이러한 방식이 더 빛을 발해 성능이 좋음
'💻 Computer Science > OS' 카테고리의 다른 글
[OS] 교착상태 (0) | 2023.12.18 |
---|---|
[OS] IPC (0) | 2023.12.18 |
[OS] 스케줄링 (0) | 2023.12.18 |
[OS] Process와 Thread (0) | 2023.12.15 |
[OS] 컴퓨터 구성 (0) | 2023.12.15 |