연예인

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

비하인드톡톡 2022. 10. 23. 10:00

커널 입출력
커널 입출력

커널 입출력

커널 입출력 운영체제는 하드웨어와 매우 밀접한 관련이 있다. 특히, 장치 자체가 CPU나 메모리 입출력 장치의 레지스터와 같은 운영 체제의 기능과 접촉을 형성하는 경우, 장치의 구조 및 기능을 잘 알지 못하는 한 운영 체제를 이해할 수 없다.

 

그러나 하드웨어 전체를 이해하는 것은 어려우므로 컴퓨터 구조의 개념을 일반화(추상화)하고자 한다. 지금부터 커널과 시스템 호출을 시작으로 커널이 외부와 접촉하는 입출력 시스템, 입출력 시스템과 커널의 접점으로서의 인터럽트의 구조 및 기능, 캐시 및 저장 장치의 구조를 연구한다.

 

 

커널

커널 입출력 이전에 배운 주민 감시 개념의 연장선상에 있다. 부팅 후 메모리에 상주하는 운영 체제의 핵심입니다. 시간 분할 시스템의 적절한 지원과 주 메모리, CPU, 입력/출력 장치의 완전한 관리 기능은 상주 모니터보다 훨씬 더 진보되어 있습니다. 커널은 주로 리소스를 관리하고 리소스 사용을 관리합니다.

 

이러한 코어는 모니터와 마찬가지로 자체 방어를 위한 "시스템 호출" 기능을 제공합니다. 애플리케이션에서는 입력 및 출력과 같은 커널 기능을 사용할 때 시스템 호출이 발생할 수 있습니다. (이는 커널이 자체 코드를 보호한다는 것을 보증합니다.)

 

커널 입출력 구성요소

 

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

 

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

 

시스템 호출

 

이것은 애플리케이션과 커널 사이의 인터페이스이다. 이를 커널 API라고 부르기도 하지만 시스템 호출 또는 시스템 호출은 정확합니다. 우리가 일반적으로 사용하는 printf, open, less 및 write와 같은 함수는 결국 시스템과 커널 함수에 의해 호출된다.

 

시스템 호출은 매개 변수 전달과 프로세서 명령 실행으로 구성됩니다. 결국, 시스템 호출은 개념적으로 함수 호출과 같으므로 매개 변수 전달이 필요하다.

 

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

 

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

 

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

 

동기식 호출

 

CallBlock: 시스템에서 특정 호출을 실행할 때 다음 라인을 시작하기 전에 결과 값이 통과될 때까지 기다립니다. 예를 들어, 납의 경우, 데이터 전송은 하드 디스크와 같은 하드웨어에서 완료되며, 커널은 전송이 애플리케이션을 진전시키지 않고 수행될 것으로 예상한다. 그것은 시간 분할 시스템을 통해 다른 과정을 수행할 것이다.)

 

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

 

콜백 기능을 사용하면 응용 프로그램이 특정 데이터 구조에 시스템 호출로 들어오는 데이터를 저장하거나 처리할 수 있습니다. 이러한 비동기 호출은 필요한 커널 입출력 기능이 장치 드라이버 등에 잘 구현되어 있을 때만 사용할 수 있으므로 시스템 호출의 올바른 사용법을 배운 후에 사용해야 한다.

 

스풀링: 버퍼와 비슷하지만 버퍼가 속도 차이를 허용하도록 되어 있다면 버퍼는 병렬 프로그램이 직렬 장치(예: 프린터)를 사용하도록 돕는 방법입니다. 데이터가 빠르고 랜덤 액세스 가능한 디스크에 도달하는 것은 수집 및 처리됩니다.

 

프로그램 1은 결과 1을, 프로그램 2는 결과 2를 산출하였다. 그리고 1번 쇼에서 3개의 결과가 나왔는데 결과 처리 명령은 1-2-3이었지만, 올바른 순서로 인쇄하려면 프로그램 2에서 실행 중인 프로그램 1과 프로그램 3과 프로그램 1과 3을 인쇄해야 한다.

 

이것을 스풀링이라고 합니다. 이것은 데이터를 디스크에 저장하고 프린터로 전송함으로써 해결된다.

 

SPOOL은 온라인 동시 환경을 의미합니다. 멀티프로그래밍 방식은 여러 프로그램을 메모리에 로드해야 하기 때문에 메모리 관리 문제도 해결했다.

 

2022.10.22 - [운영체제] - [운영체제] 디스크 스케줄링과 파일 시스템

 

[운영체제] 디스크 스케줄링과 파일 시스템

1. 원반 구조 - SERS: 팬 부문. - 트랙: 중심축은 동심원으로 나뉩니다. - 블록: 각 영역(일반적으로 여러 섹터)은 섹터와 트럭 사이의 교차점으로 둘러싸여 있습니다. · 헤드가 동시에 읽고 기록할

hotpeople.co.kr