• 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중개자 역할을 하는 프로그램
• 하드웨어를 효율적으로 사용, 필요한 자원 할당
• 메모리 내 커널 영역(운영체제) / 사용자 영역(프로그램)
• 리소스 할당자: 메모리 자원 관리, 공정한 자원 사용에 대한 상충되는 요청 사이에서 결정 / CPU 자원 할당
• 프로그램 컨트롤러: 오류 및 부적절한 사용을 방지하기 위해 프로그램 실행 제어
•1950~1960:
•1960~1990:
•1990~:
•현재:
• CPU(프로세서,처리기)
• 주기억장치(MM)
• 입출력 모듈
• 시스템 버스
• 시스템 버스:
• 버스 분류:
• I/O 컨트롤러: CPU 명령에 따라 I/O작업 수행
• I/O 컨트롤러 레지스터:
-데이터 레지스터(입력, 출력)
-제어 레지스터(제어, 상태)
• I/O 작업은 CPU에 의해 시작된다.
• Polling I/O:
I/O가 완료되었는지 확인하기 위해 계속 I/O 상태 레지스터를 확인. CPU자원 낭비. 입출력 처리 시간 큼
• Interrupt-driven I/O:
인터럽트(방해)를 원인으로 작업을 완료함을 CPU에 알림 / 입출력 관리자의 신호를 받음
• Memory-mapped I/O:
-접근 시 같은 인스트럭션 사용
-동일한 주소 공간을 사용하여 메모리와 I/O 모두 주소 지정
• Port-mapped I/O:
-접근 시 별도의 인스트럭션 필요
-I/O 장치에 별도의 I/O 주소 공간 사용
• 디바이스 컨트롤러가 CPU의 개입 없이 버퍼 저장소와 메인 메모리 간에 데이터 블록을 직접 전송할 수 있도록 함
• 데이터를 바이트 단위가 아니라 블록 단위로 전송
• 메모리 속도에 가까운 속도로 정보를 전송할 수 있는 고속 I/O 장치에 사용 / CPU자원 절약
-방해 Interrupt
-인터럽트 아키텍처는 인터럽트 된 명령의 주소를 저장해야 함
-Trap or exception: 오류 또는 사용자 요청으로 인해 발생하는 소프트웨어 생성 인터럽트
-OS is interrupt driven
ISR (interrupt 서비스 루틴)
OS 설계 원칙:
• 메커니즘과 정책 분리
• Policy: 수행할 작업 결정
• 메커니즘: 작업을 수행하는 방법 결정
-정책 결정이 변경될 경우 분리를 통해 최대한의 유연성 제공
• 간단한 구조 MS-DOS: 싱글 작업 / 모듈로 나누지 X
• 초기 UNIX: 프로그램과 커널로 구현
• 계층적 접근: 위아래 단계끼리만 소통. 오류를 찾아내기는 쉬움.
(아래-하드웨어/ 최상위-사용자 인터페이스)
• 마이크로커널 구조:
-커널에서 불필요한 구성 요소 제거 / 사용자 수준 프로그램
-프로세스, 메모리, 통신 관리 등만 커널에서
-오버헤드로 성능에 악영향
-안전성과 보안성은 높음
-메세지를 통해 간접적으로 상호작용
• 모듈:
-적재 가능 커널 모듈(LKM)
-필요에 따라 로드 / dynamic linking / 자주 사용하는 서비스들을 커널에 포함시킴
① 커널
• 운영체제 핵심 기능 담당
② 사용자 인터페이스
• 그래픽 유저 인터페이스
• 커맨드 라인 인터페이스