▶클릭◀ 병원 약국에서 지출한 병원비 약값 최대 80% 보장받기
입출력에 관련된 가장 기본적인 하드웨어 장치들은 버스, 장치 제어기와 장치들 자신이다. 장치들과 메모리 사이의 자료 이동은 프로그램된 입출력으로서 CPU에 의해 직접 이루어지거나 DMA 제어기에 의해 이루어진다. 이때 장치를 제어하는 커널 모듈이 바로 장치 제어기이다. 응용 프로그램의 장치 접근을 위한 시스템 호출들은 블록장치, 문자장치, 메모리 맵 파일, 네트워크 소켓이나 프로그램된 시간 간격 타이머(programmed intervaltimer)들과 같은 여러 가지 종류의 장치 부류들을 제공할 수 있도록 설계되어 있다. 시스템 호출은 통상적으로 자신을 호출한 프로세스를 봉쇄시키지만, 그렇게 하지 말아야 할 경우가 있기 때문에 시스템은 비봉쇄형과 비동기 호출을 제공한다. 이들은 커널 자신에 의해 불려지기도 하며, 입출력 동작의 완료를 기다릴 동안 수면(sleep) 상태로 들어가지 말아야 할 응용 프로그램들에 의해서도 사용된다.
커널의 입출력 서브시스템은 많은 서비스를 제공한다. 입출력 스케줄, 버퍼링, 스풀링, 에러 처리, 장치 예약 등이 그것이다. 이외의 서비스로는 하드웨어 장치와 응용 프로그램에 사용되는 심벌릭 파일 이름과 연결해주는 이름 변환(name translation)이 있다. 이것은 문자열 이름을 특정 장치 구동기나 장치 주소로 바꾼 다음 입출력 포트나 버스 제어기의 물리 주소로 전환하는 여러 단계의 맵핑을 포함한다. 이러한 맵핑은 UNIX 시스템 같은 파일 시스템 이름 공간과 MS--DOS 같은 독자적인 장치 이름 공간 간에 일어날 수 있다.
STREAMS는 장치 드라이버와 네트워크 프로토콜을 작성하는데 모듈화되고 점진적인 접근 방식을 취할 수 있는 프레임워크를 제공하는 구현이자 방법론이다. STREAMS를 통해 드라이버를 층으로 쌓을 수 있으며 데이터는 이 층을 순차적으로 양방향 전송된다.
물리 장치와 응용 프로그램간의 많은 소프트웨어 계층으로 인해 입출력 시스템 호출은 CPU의 사용면에서 비용이 많이 든다. 이러한 계층이 야기하는 오버헤드의 원인에는 커널의 보호 경계(protection boundary)를 넘을 때의 문맥 교환과 입출력장치를 조작하기 위한 인터럽트와 신호, 커널 버퍼와 응용 프로그램 공간 간의 자료 복사에 따른 CPU와 메모리 시스템의 부하 등이 있다.
'컴퓨터 구조' 카테고리의 다른 글
분산 운영체제,파일시스템,동기화에 대해서.. (0) | 2022.05.03 |
---|---|
컴퓨터 구조의 보호 및 보안 (0) | 2022.05.03 |
2차 저장장치 구조에 대해서.. (0) | 2022.04.17 |
파일 시스템 구현에 대해서.. (0) | 2022.04.17 |
파일 시스템에 관해서.. (0) | 2022.04.17 |