170 likes | 386 Views
제 1 장 소개 1.1 개요 운영체제의 목적 컴퓨터 시스템을 편리하게 사용 / 이용 (user friendly) 컴퓨터 하드웨어 ( 자원 ) 를 효율적으로 관리 ( 자원 할당자 , efficient) 컴퓨터 시스템의 구성. 운영체제의 다른 관점 제어 프로그램 : 사용자 프로그램을 통제하여 오류와 컴퓨터의 부적절한 사용을 방지한다 . 컴퓨터 시스템을 구성하는 자원들을 통제하고 할당하는 공통적인 기능들을 하나의 소프트웨어로 통합한 것 . 1.2 운영체제의 유형
E N D
제 1 장 소개 • 1.1 개요 • 운영체제의 목적 • 컴퓨터 시스템을 편리하게 사용/이용(user friendly) • 컴퓨터 하드웨어(자원)를 효율적으로 관리(자원 할당자, efficient) • 컴퓨터 시스템의 구성 Slide 1 (of 17)
운영체제의 다른 관점 • 제어 프로그램: 사용자 프로그램을 통제하여 오류와 컴퓨터의 부적절한 사용을 방지한다. • 컴퓨터 시스템을 구성하는 자원들을 통제하고 할당하는 공통적인 기능들을 하나의 소프트웨어로 통합한 것. 1.2 운영체제의 유형 1.2.1 일괄 처리 시스템(Batch Processing System) • 작업 준비 시간(테이프 준비, 오퍼레이터가 콘솔을 조작)을 줄이기 위하여 요구사항이 비슷한 작업들을 함께 묶어서 수행하는 방법 • 작업 순서의 자동화(automatic job sequencing): 한 프로그램에서 다음 프로그램으로 제어를 자동적으로 넘기기 위하여 만들어진 상주 모니터(resident monitor)를 두는 것이다. • 작업 제어 카드(JCL)를 사용하여 프로그래머가 상주 모니터에게 정보 전달 • 단일 프로세스 Slide 2 (of 17)
1.2.2 다중 프로그래밍 시스템 • 중앙처리장치의 이용도를 높이기 위하여 주기억장치 내에 여러 프로그램들이 존재한다. • 여러 개의 작업을 준비 상태에 두고, 준비 상태에 있는 여러 작업들 중 어느 한 작업을 실행할 작업으로 선정하는 데에는 별도의 기억장치 관리 기법이나 중앙처리장치 관리 기법 등이 필요하다. (a) 순차 실행 (b) 다중 프로그래밍 실행 Slide 3 (of 17)
1.2.3 시분할 시스템 • 여러 사용자들이 컴퓨터 자원(특히, CPU)에 대한 짧은 시간 단위의 공유를 통하여 구현되어진다. • 사용자는 대화식 단말장치를 이용하여 시분할 시스템과 인터페이스 한다. Slide 4 (of 17)
1.2.5 실시간 시스템 • 처리기의 작동이나 데이터의 흐름에 엄격한 시간적 제약이 있을 때 사용된다. • 센서 등에 의한 사건 발생 신호를 받아, 어떤 사건이 발생하였는지를 판단하고 그 사건을 해결하기 위하여 사건이 제시한 데이터를 처리하여 응답하는 과정에 대한 제어를 책임진다. • 과학 실험을 제어하는 시스템, 의학 영상 시스템, 산업 제어 시스템, 디스플레이 시스템 등 • 경성 실시간 시스템 • 중요한 태스크가 정해진 시간에 완료될 것을 보장 • 어떤 보조 저장장치는 제한적으로 사용하거나 전혀 사용하지 않으며, 데이터는 주기억장치 또는 ROM에 저장된다. • 연성 실시간 시스템 • 중요한 실시간 태스크가 다른 태스크 보다 높은 우선순위를 얻는다. • 멀티미디어, 가상현실 Slide 5 (of 17)
1.2.5 다중 처리 시스템 • 공유기억장치를 통하여 하나로 연결된 다중처리기의 제어 및 공유를 위한 시스템 • 밀착된 결합 시스템(tightly coupled system): 매우 밀접한 통신을 하는 하나 이상의 처리기를 가지며, 컴퓨터 버스, 클락, 메모리와 주변장치를 공유한다. • 처리량 증가 • 신뢰성 증가 • 대칭적 다중 처리(SMP) • 비대칭적 다중 처리 • 느슨한 결합 시스템(loosely coupled system): 각 처리기는 기억장치와 클럭을 공유하지 않으며 각 처리기는 자신의 지역 기억장치를 가지며, 처리기들은 고속의 버스나 광섬유와 같은 다양한 통신 회선을 통해 서로 통신한다.분산 시스템 Slide 6 (of 17)
1.2.6 개인용 컴퓨터 시스템 • 편리성과 응답성을 더 중요시 한다. • 1.2.8 멀티미디어 시스템 • 이미지/그래픽, 사운드, 애니메이션 및 비디오 등 다양한 미디어를 이용하여 멀티미디어 콘텐츠를 제작하기 위해 필요한 하드웨어와 소프트웨어로 구성된다. • 저작 시스템, 재생 시스템, 멀티미디어 플랫폼 Slide 7 (of 17)
1.3 운영체제에 대한 관점 • 1.3.1 자원 관리자 관점 • 운영체제는 자원이 효율적으로 사용되도록 관리하고 다양한 요구를 가지는 사용자 간에 발생할 수 있는 자원에 대한 경쟁 및 이로 인한 충돌을 해결한다. • 자원 관리자 • 자원의 상태를 추적/저장 • 어떤 프로세스가 언제 어떤 자원을 얼마나 사용할 것인지를 결정하기 위한 정책 수립 • 자원의 할당 • 자원의 회수 • 프로세스 관리 기능 • 중앙처리장치와 프로세스의 상태를 추적/저장한다. • 어떤 작업에게 처리기를 사용하도록 할 것인지를 결정한다(프로세스 스케줄러). • 디스패쳐는 필요한 하드웨어 레지스터를 설정함으로써 프로세스에게 중앙처리장치를 할당한다.(문맥교환, 사용자 모드로 전환, 프로세스의 실행 위치로 이동) • 프로세스가 수행을 종료하였거나, 어떤 이유로 인하여 사용의 양도 또는 허용된 사용 시간을 초과하였을 경우 중앙처리장치를 회수한다. Slide 8 (of 17)
기억장치 관리 기능 • 기억장치의 상태를 추적/저장한다. 기억장치의 어떤 부분이 사용되고, 어떤 부분이 사용되고 있지 않은가? 만약 사용된다면 어떤 프로세스에 의해 사용되는가를 추적/저장한다. • 다중 프로그래밍 환경 하에서, 어떤 프로세스에게 언제, 얼마의 기억 장치를 할당할 것인지를 결정한다. • 프로세스가 기억장치를 요구하면 할당한다. • 프로세스가 더 이상 기억장치를 필요로 하지 않게 되면 회수한다. • 장치 관리 기능 • 채널 등 제어장치 및 입출력장치와 같은 각종 장치들의 상태를 추적/저장한다. • 장치를 할당하는데 어떤 방법이 효율적인지를 결정한다. 각 장치마다 대기 큐를 유지함으로써 스케줄링을 구현한다.(I/O Scheduling) • 해당 장치를 할당하고 입출력 동작을 시작한다. • 입출력이 종료되면 자동적으로 자원을 회수한다. • 정보 관리 기능 • 정보의 위치, 사용 여부 및 상태 등을 추적/관리한다.(파일 시스템) • 어떤 작업에게 정보 자원을 사용하도록 할 것인지를 결정한다. 정보보호를 위한 대책을 수립하고, 접근 방법을 제공한다. • 정보 자원을 할당한다. • 정보 자원을 회수한다. Slide 9 (of 17)
운영체제 프로세스 1 프로세스 2 프로세스 3 • 1.3.2 프로세스 관점 • 다중 프로그래밍 환경 Slide 10 (of 17)
운영체제의 구성요소 A B 프로세스 프로세스 3 프로세스 1 프로세스 외부적 확장 기계 내부적 확장 기계 하드웨어 사용자 프로그램 ( ) 프로세스 ( ) 운영체제의 주된기능 ( 운영체제의 주된기능을 제외한 ) 나머지 부분 2 4 프로세스 프로세스 1.3.3 계층 구조 관점 Slide 11 (of 17)
1.4 입출력 프로그래밍 • 1.4.1 버퍼링 • 입출력장치나 보조기억장치는 기계적 요인 때문에 중앙처리장치와 비교할 때 매우 느린 속도로 작동한다. 이와 같은 입출력장치의 느린 속도를 보완하는 한 가지 방법이 버퍼링이다. ① 중앙처리장치는 출력할 데이터를 버퍼에 채운다. ② 버퍼가 다 채워지면 중앙처리장치는 채널에게 출력을 지시하고, 자신의 일을 계속한다. ③ 채널은 출력을 수행함으로써 버퍼를 비운다. ④ 출력을 완료함으로써 버퍼를 다 비우면 중앙처리장치에게 알린다. Slide 12 (of 17)
1.4.2 스풀링(SPOOLing) • Simultaneous Peripheral Operation On-Line • 버퍼링은 주기억장치를 버퍼로 사용하는 반면, 스풀링은 디스크를 매우 큰 버퍼처럼 사용하는 것이다. • 입출력 장치에 대한 공유를 가능하게 하기 위하여 가상적인 장치(virtual device)를 각 프로세스에게 제공해 주는 개념이다. Slide 13 (of 17)
1.4.3 채널 • 입출력 장치와 중앙처리 장치 사이에 입출력 전담 처리기인 입출력 채널(I/O channel)을 두고, 모든 입출력이 채널을 통하여 수행됨으로써 중앙처리장치는 입출력이 실제로 수행 완료될 때 까지 기다리거나 수시로 입출력장치의 상태를 점검할 필요 없이 계속해서 연산을 수행할 수 있다. Slide 14 (of 17)
1.4.4 인터럽트 • 채널과 중앙처리장치 간의 통신은 일반적으로 인터럽트(interrupt)에 의해 이루어진다. • 종류 • 입출력(I/O) 인터럽트 : 해당 입출력 하드웨어가 주어진 입출력 동작을 완료하였거나 또는 입출력의 오류 등이 발생하였을 때 중앙처리장치에 대하여 요청하는 인터럽트이다. • 외부(external) 인터럽트 : 시스템 타이머(timer)에서 일정한 시간이 만료된 경우나 오퍼레이터가 콘솔 상의 인터럽트 키를 입력한 경우, 또는 다중처리 시스템에서 다른 처리기로부터 신호가 온 경우 등에 발생한다. • SVC(SuperVisor Call) 인터럽트 : 사용자 프로그램이 수행되는 과정에서 입출력 수행, 기억장치의 할당, 또는 오퍼레이터의 개입 요구 등을 위하여 실행 중의 프로그램이 SVC 명령을 수행하는 경우에 발생한다. • 기계 검사(machine check) 인터럽트 : 컴퓨터 자체 내의 기계적인 장애나 오류로 인한 인터럽트이다. • 프로그램 에러(program error) 인터럽트 : 주로 프로그램의 실행 오류로 인해 발생한다. 예를 들면, 수행 중인 프로그램에서 0으로 나누는 연산이나, 보호(protection)되어 있는 기억장소에 대한 접근, 허용되지 않는 명령어의 수행, 또는 스택의 오버플로(overflow) 등과 같은 오류가 발생할 때 일어난다. • 재시작(restart) 인터럽트 : 오퍼레이터가 콘솔 상의 재시작 키를 누를 때 일어난다. Slide 15 (of 17)
인터럽트 처리 과정 Slide 16 (of 17)
인터럽트 처리 과정 및 PSW 위치 Slide 17 (of 17)