본문 바로가기
운영체제

커널 입출력 (Kernel I/O Subsystem) 핵심 정리

by 컨텐츠플러스 2023. 6. 4.

커널 입출력

커널 입출력

커널 입출력 : 커널의 주요 기능은 컴퓨터에 속한 자원들에 대한 접근을 중재하는 것입니다.
특히, 장치 자체가 CPU나 메모리 입출력 장치의 레지스터와 같은 운영 체제의 기능과 접촉을 형성하는 경우, 장치의 구조 및 기능을 잘 알지 못하는 한 운영 체제를 이해할 수 없죠.
그러나 하드웨어 전체를 이해하는 것은 어려우므로 컴퓨터 구조의 개념을 일반화(추상화)하고자 합니다.

지금부터 커널과 시스템 호출을 시작으로 커널이 외부와 접촉하는 입출력 시스템, 입출력 시스템과 커널의 접점으로서의 인터럽트의 구조 및 기능, 캐시 및 저장 장치의 구조를 알아보겠습니다.

커널

커널은 하드웨어와 애플리케이션 간의 인터페이스를 제공하고 컴퓨터 자원을 관리하면서 항상 메모리에 상주하는 운영체제의 핵심 부분이다.
즉, 커널은 인터페이스와 같은 애플리케이션을 실행하는 데 필요한 다양한 서비스를 제공하고 다양한 하드웨어(CPU, 메모리)와 같은 자원을 관리한다.

그러나 이들 코어는 항상 컴퓨터 자원을 추구하기 때문에 사용자와의 상호작용을 지원하지 않는다. 따라서 사용자와 직접 통신할 수 있는 프로그램이 제공된다.

커널 입출력 구성요소

기능적 측면: 부팅 단계의 기능(커널 성능을 위한 하드웨어를 진단 및 시작하고 디스크에 커널 프로그램을 로드하는 기능) / 부팅 후 기능(프로세스, CPU, 기본 메모리, 아카이브 시스템, 보조 메모리, 시계).

형태학적 측면: 시스템 호출 기능 세트(애플리케이션이 시스템 호출로 사용하는 기능)/장치 드라이버 세트 및 인터럽트 관리 기능 세트(인터럽트를 통해 입출력 장치가 작동하는 부분)/기타 기능 세트(일반적으로 프로그램). 

시스템 호출

시스템 호출은 제가 시스템 호출이라고 부르는 것에 더 익숙하기 때문에 시스템 호출에 대해 말씀드리겠습니다. 이것은 운영 체제 연구의 중요한 부분이다.

이전에는 운영 체제가 커널과 사용자 모드(전체 검토 - 이중 작업 모드 참조)로 나뉘었습니다.
운영 체제에서는 대부분의 프로그램이 파일 읽기, 파일 쓰기 또는 화면 메시지 인쇄와 같은 커널 모드를 사용합니다.

시스템 호출을 통해 사용자 모드는 이러한 커널 영역 기능입니다.
즉 필요한 기능을 사용하는 하드웨어 및 프로세스를 활용할 수 있습니다.

운영 체제와 커널 입출력 애플리케이션 간의 연결인 시스템 호출과 같은 매개변수의 형식이나 수에 차이가 있을 경우 치명적인 호환성 문제를 야기할 수 있다.

따라서 ISO/IEC와 IEEE가 공동으로 자금을 지원하는 POSIX(Portable Operating System Interface)에 표준화되어 있다.
시스템 호출은 프로세스 제어, 파일 조작, 주변 조작, 정보 관리, 통신 및 보호의 여섯 가지 유형으로 나뉜다.

리눅스나 솔라리스와 같은 OS의 경우 커널 입출력 특정 시스템의 호출에 필요한 매개변수는 메모리에 특정 주소에 저장되고 메모리 주소가 기록된다.
그리고 시스템 호출 기능이 수행되면 메모리의 해당 방향으로 작동하여 그 방향으로 저장된 매개변수를 읽는다.

동기식 호출

CallBlock : 시스템에서 특정 호출을 실행할 때 다음 라인을 시작하기 전에 결과 값이 통과될 때까지 기다립니다.

예를 들어, 납의 경우, 데이터 전송은 하드 디스크와 같은 하드웨어에서 완료되며, 커널 입출력은 전송이 수행될 것으로 예상한다.

비동기 호출 : 다음 작업은 시스템 호출이 수행되는 커널 호출만 요청한 후 수행됩니다.
그런 다음 시스템 호출이 끝나면 이벤트가 발생합니다.
따라서 비동기 호출의 경우 매개 변수로 이벤트를 처리하는 기능이 필요합니다.

이러한 기능을 콜백 함수라고 하며, 이벤트가 발생하면 콜백 함수를 콜백 함수라고 합니다. 콜백 기능을 사용하면 응용 프로그램이 특정 데이터 구조에 시스템 호출로 들어오는 데이터를 저장하거나 처리할 수 있습니다.

이러한 비동기 호출은 필요한 기능이 장치 드라이버 등에 잘 구현되어 있을 때만 사용할 수 있으므로 시스템 호출의 올바른 사용법을 배운 후에 사용해야 한다.

 

2023.05.27 - [운영체제] - 파일시스템 (File System) 핵심 정리

 

파일시스템 (File System) 핵심 정리

운영체제 파일시스템 파일시스템 : 파일이나 자료를 쉽게 접근할 수 있도록 보관하는 체제를 가리키는 말입니다. 정보 집합은 모든 비트, 바이트, 열, 로그 등을 포함합니다. 파일의 작성자 또는

contentplus.tistory.com