Presentation is loading. Please wait.

Presentation is loading. Please wait.

3. 운영체제의 발전 과정 제 2세대 (1960년대 초기) – 다중 프로그래밍, 다중 처리, 시분할 시스템

Similar presentations


Presentation on theme: "3. 운영체제의 발전 과정 제 2세대 (1960년대 초기) – 다중 프로그래밍, 다중 처리, 시분할 시스템"— Presentation transcript:

1 3. 운영체제의 발전 과정 제 2세대 (1960년대 초기) – 다중 프로그래밍, 다중 처리, 시분할 시스템
주로 일괄 처리 형태로 처리량을 향상시키는 것이 주된 관심사였으며 장치 독립성이라 는 개념이 나타나기 시작하여 하드웨어 관리가 편리해 짐. 사용자 프로그램에서 테이프 드라이브만 지정하면 운영체제가 현재 사용되고 있지 않는 테이프 드라이브를 찾아 오퍼레이터에게 테이프를 드라이브에 걸어줄 것을 지시함. 다중 프로그래밍 여러 사용자 프로그램이 메인 메모리에 공존하며 프로세서를 작업 간에 수시로 번갈아 할당. 다중 처리 시스템 시스템의 처리 능력을 증진시키기 위해 한 컴퓨터 시스템에 여러 개의 프로세서 사용. 시분할 시스템 사용자가 터미널을 통해 컴퓨터와 직접 접촉하기 위해 개발. 사용자와 대화 방식으로 작동하며, 사용자가 컴퓨터에 요구 사항을 입력하면 컴퓨터가 요구를 처 리하여 사용자의 터미널로 응답. 실시간 시스템 즉시 응답한다는 점이 특징으로, 컴퓨터가 가솔린 정제 등의 공정을 제어하는 데 사용되며 발전하 기 시작함. 군용 실시간 시스템은 적의 공중 공격에 대비해 동시에 수천 지점을 감시하기 위해 개발. 필요할 때 즉시 사용할 수 있고 빠른 응답이 중요하므로 활용도가 높지 못하고 비용이 많이 듬.

2 3. 운영체제의 발전 과정 제 3세대 (1960년 중반 ~ 1970년대 중반) – 범용 시스템, 다중 모드 시스템
미항공 회사의 SABRE(Semi-Automatic Business Research Environment) 예약 시스템 제 2세대의 가장 중요한 개발 중 하나로, 멀리 떨어진 사용자가 단말기를 통해 중앙 컴퓨터 시스 템과 통신하는 트랜잭션 처리 시스템의 효시. 트랜잭션 처리 시스템 : 사용자와 컴퓨터 시스템이 대화를 하되 사용자가 비교적 간단하게 요구 하면 컴퓨터가 빠른 시간 내에 응답. 사용자 단말기는 컴퓨터의 온라인이라 불림. 제 3세대 (1960년 중반 ~ 1970년대 중반) – 범용 시스템, 다중 모드 시스템 1964년 IBM 시스템/360 계열 컴퓨터로부터 시작. 범용 시스템으로 설계되어 육중하며 모든 사용자에게 모든 기능을 제공할 수 있도록 제 작. 다량의 컴퓨터가 판매되었으나, 이러한 기능이 필요 없는 특별 분야의 사용자에게 실행 시간의 과 부하, 시스템 이해를 위한 기간(매뉴얼 이해), 오류 발생 시 수정 시간, 시스템 유지 등에 있어 많 은 비용 부담의 단점을 가짐. 다중 모드 시스템 일괄 처리, 시분할 처리, 실시간 처리, 다중 처리를 모두 제공. 고가이며 계획한 시간과 예산을 초과하여 완성되었으며 사용에도 고도의 훈련이 필요. 사용자와 하드웨어 사이에 소프트웨어 계층 도입. - 사용자는 하드웨어에 대한 관점 없이 소프트웨어에 의해 형성된 관점을 보게 되어 사용이 어려웠으며, 간단한 작 업 수행에도 복잡한 작업 제어 언어(JCL, Job Control Language)의 이해가 필요함.

3 3. 운영체제의 발전 과정 제 4세대 (1970년대 중반 이후) – 네트워크, 가상 머신, 분산 처리 시스템, 개인 컴퓨터
제 4세대 (1970년대 중반 이후) – 네트워크, 가상 머신, 분산 처리 시스템, 개인 컴퓨터 통신 발달과 더불어 컴퓨터 네트워크와 온라인 처리가 사용됨. 다양한 형태의 단말기를 이용하여 멀리 떨어진 지역의 컴퓨터를 네트워크를 통해 사용 가능. 마이크로프로세서의 등장으로 개인용 컴퓨터를 가짐. 개인용 컴퓨터 데이터 통신 인터페이스를 갖추어 터미널로 사용. 시분할 모드로 한정된 컴퓨터만 사용해야 한다는 제약을 받지 않고, 지역적으로 멀리 떨어진 여러 시스템과 통신이 가능하다. 통신선을 통과하는 정보의 안전한 관리 문제가 대두되어 정보 보호가 중요한 관심사가 되어, 교신 내용 누출 시에도 지정한 수신자 외에 데이터 사용이 불가능하도록 하는 부분이 주요 이슈다. 1980년대, 메뉴 지향적 시스템. 컴퓨터를 사용하는 인구가 급증하면서 일반 사용자에게 컴퓨터를 쉽게 사용할 수 있도록 “사용자 에게 친숙한 시스템”이란 문구 등장. 1960년대와 1970년대의 텍스트(명령) 중심의 시스템 사용법이 메뉴 지향적 시스템으로 대치됨. 1990년대, GUI(Graphical User Interface) 시스템. 도형(아이콘)과 마우스를 기반으로 한 시스템.

4 3. 운영체제의 발전 과정 가상 머신 (Virtual Machine) 개념 출현 데이터베이스 시스템의 중요성
사용자는 더 이상 컴퓨터 시스템의 물리적인 부분을 신경 쓰지 않고, 운영체제에 의해 만들어진 가상 머신의 관점으로 이해한다. 오늘날의 사용자는 머신 내부의 기능보다 실제로 컴퓨터 작업을 수행하는 데 관심을 가진다. 데이터베이스 시스템의 중요성 정보를 제공받을 권리가 있는 사람에게만 일정한 통제 하에서 정보를 제공한다. 수많은 온라인 데이터베이스를 통신 네트워크의 터미널을 통해 사용 가능하다. 분산 처리의 개념 확립. 컴퓨터가 있는 곳으로 데이터를 가져가기 보다, 데이터가 발생하는 곳으로 컴퓨터의 능력을 가져 온다.

5 4. 운영체제 기능 운영체제의 기능 운영체제는 프로그램을 실행하는 데 필요한 환경과 자원을 제공하고 관리하기 위한 크 고 복잡한 시스템이다. 논리적으로 작은 모듈로 구성되며 각 부분은 명확하게 정의된다. 현대의 대부분 시스템은 자원 관리와 프로그램을 위한 인터페이스 역할을 수행한다. 자원 관리 기능 대부분 메모리, 프로세스, 장치, 파일 등의 시스템 구성 요소를 제공하는데 이를 자원이라 하며, 운영체제는 이런 자원을 관리하는 역할을 수행한다. [그림 2-15] 운영체제의 자원 관리 기능

6 4. 운영체제 기능 메모리 관리 보조기억장치 관리 메모리는 메인 메모리와 보조 기억장치로 구분한다.
- 메인 메모리는 컴퓨터 시스템에서 핵심 역할을 수행하며, 프로세서가 직접 주소로 지정할 수 있는 유일한 메모리다. - 프로세서가 명령어를 수행하려면 명령어가 메인 메모리에 있어야 하므로, 프로그램을 수행하려면 프로그램이 절대주소로 맵핑되어 메인메모리에 저장되어야 한다. 프로세서 이용률과 컴퓨터 응답 속도 향상을 위한 다양한 메모리 관리 기법이 존재한다. 운영체제는 메인 메모리 관리를 위해 다음 기능을 담당한다. - 현재 메모리의 어느 부분이 사용되고, 누가 사용하는 지를 점검. - 기억 공간에 어떤 프로세스를 저장할 지를 결정. - 기억 공간을 할당하고 회수하는 방법 결정 보조기억장치 관리 메인 메모리의 공간이 제한적이므로 컴퓨터 시스템은 보조기억장치를 이용해 메인 메모리의 내 용을 저장한다. - 대부분의 시스템은 온라인 저장 매체로 디스크를 이용하므로 디스크에서의 저장 기법이 매우 중요하다. 운영체제는 디스크 관리를 위해 다음 기능을 담당한다. - 비어 있는 공간 관리 - 저장 장소 할당 - 디스크 스케줄링

7 4. 운영체제 기능 프로세스 관리 장치 관리(입출력 관리)
프로세스 하나는 자신의 업무를 수행하기 위해 프로세서 점유, 메모리, 파일, 입출력장치 같은 다 양한 자원이 필요하다. 자원은 프로세스가 생성될 때 또는 실행 중에 할당될 수도 있다. 하나의 프로세스는 한 시스템에서 작업 단위이며, 시스템은 프로세스의 집합으로 구성된다. - 운영체제 프로세스(시스템 코드를 수행하는 프로세스) + 사용자 프로세스(사용자 코드를 수행하는 프로세스) 모든 프로세스는 프로세서를 분할하여 사용함으로써 병행하여 수행할 수 있다. 운영체제는 프로세스 관리를 위해 다음 기능을 담당한다. - 프로세스와 스레드 스케줄링 - 사용자와 시스템 프로세스 생성과 제거 - 프로세스의 중지와 재수행 - 프로세스 동기화와 통신을 위한 기법 제공 - 교착 상태(Deadlock)를 방지하는 기법 제공 장치 관리(입출력 관리) 운영체제는 사용자가 특정 하드웨어 장치(입출력장치 등)를 세부적이고 복잡한 기계로 느끼지 않 고 포괄적 기계로 인식하게 하여 장치의 특성을 숨긴다. 운영체제는 입출력 시스템을 관리하기 위해 다음의 기능을 제공한다. - 임시 저장(Buffer-aching) 시스템 - 일반적인 장치 드라이버 인터페이스 - 특정 하드웨어 장치를 위한 드라이버

8 4. 운영체제 기능 운영체제 기타 기능 파일 관리 시스템 보호 네트워킹 명령어 해석기와 시스템 관리
가장 많이 사용되는 운영체제 구성 요소 중 하나로, 컴퓨터는 물리적으로 다양한 형태 즉 자기테 이프, 자기디스크, 광디스크 같은 일반 저장 형태로 정보를 저장할 수 있으며, 효율적인 사용을 위 해 단일화된 정보 저장 형태를 제공한다. 운영체제는 파일의 추상적인 개념을 운영하고 쉽게 사용하기 위해 디렉터리로 구성, 다수의 사용 자에 의한 파일 접근을 제어한다. 운영체제는 파일 관리를 위해 다음 기능을 담당한다. - 파일과 디렉터리의 생성과 제거 - 보조기억장치에 있는 파일의 맵핑 - 안전한(비휘발성) 저장 매체에 파일 저장 운영체제 기타 기능 시스템 보호 운영체제에 있는 프로세스를 다른 사용자의 프로그램으로부터 보호한다. 네트워킹 시스템에 있는 프로세서는 다양한 방법으로 구성될 수 있는 통신 네트워크를 통해 연결된다. 네트워크는 완전 접속과 부분 접속으로 연결되며, 설계 시 경로 설정, 접속 정책, 충돌, 보안 등의 문제를 고려해야 한다. 명령어 해석기와 시스템 관리 명령어 해석기(Command Interpreter)는 운영체제를 위한 중요한 시스템 프로그램 중 하나이다. - 사용자가 입력한 여러 가지 명령을 운영체제에 전달하는 역할. - 사용자와 운영체제 간의 인터페이스 역할을 할 뿐 운영체제는 아님.

9 5. 운영체제 서비스 부트스트래핑 서비스 운영체제가 적재되는 과정을 부트스트래핑(Bootstraping) 또는 부팅(Booting)이라 한다. 부트스트랩 로더(Bootstrap Loader)는 디스크 트랙 0, 나머지는 디스크의 다른 부분에 적재된다. 부트스트랩 로더의 목적은 운영체제를 적재하는 것이며, 운영체제를 적재하면 시스템이 초기화된 다. 초기화의 목적은 운영체제 정리(시스템 장치의 초기화), 사용자와의 대화를 통한 시간 등의 설정, 명령 해석기의 적재와 준비 등이다. [그림 2-16] 부트스트래핑 과정

10 5. 운영체제 서비스 사용자 서비스 프로그래머가 프로그래밍 작업을 쉽게 수행할 수 있도록 제공되는 서비스로 운영체제는 다음과 같은 역할을 수행한다. 사용자 인터페이스 - 운영체제의 많은 기능은 컴퓨터 화면에 나타나지 않으며, 사용자가 보는 것은 사용자 인터페이스뿐이다. - 운영체제와 사용자의 연결을 위해 사용자가 제어 가능한 부분으로 이를 통해 운영체제와 통신, 대화할 수 있다. - 구현 방법 : 명령 라인 인터페이스(Command-Line Interface), GUI(Graphical User Interface) 프로그램 수행 - 시스템은 프로그램을 메모리에 적재하여 실행하고 프로그램 실행을 정상적 혹은 비정상적으로 끝낼 수 있어야 한다. 입출력 동작 - 수행 중인 프로그램이 입출력을 요구할 수 있고, 파일이나 입출력 장치를 지정할 수 있다. - 특수 기능(테이프 드라이버 되감기, 모니터 화면지움 등)이 필요한 입출력장치는 운영체제가 입출력 동작을 위 한 방법을 제공해야 한다. 파일 시스템 조작 - 프로그램은 파일을 정확히 읽고 기록해야 되며 파일 이름으로 파일을 생성하고 삭제해야 한다. 통신 - 프로세스간 정보 교환 방법은 크게 두 가지로 동일한 컴퓨터 또는, 컴퓨터 네트워크에 의해 함께 묶인 다른 컴퓨터 시스템에서 수행되는 프로세스 간에 일어난다. 오류 탐지 - 운영체제는 가능한 모든 오류를 항상 탐지하고, 올바르고 일관성 있는 계산을 보장하기 위해 오류 유형별로 적절히 조치해야 한다. - 오류는 프로세스, 메모리, 하드웨어, 입출력장치, 사용자 프로그램에서 발생 가능하다.

11 5. 운영체제 서비스 시스템 서비스 사용자가 아닌 시스템 자체의 효율적인 동작을 보장하는 기능이다.
다수의 사용자가 있는 시스템에서는 사용자가 컴퓨터 자원을 공유하여 효율성을 높인다. 자원 할당 - 다수의 사용자나 다수의 작업이 동시에 실행 시 자원을 작업 각각에 할당해야 하는데, 이것은 운영체제가 담당한 다. 계정 - 계정 정보를 이용해 각 사용자의 시스템 이용 정보를 알 수 있다. - 시스템 청구나 시스템 사용 통계를 수집하기 위해 보관하며 사용자 서비스 개선을 위한 연구 자료로 이용 가능 하다. 보호 - 다중 사용자 컴퓨터 시스템에서 저장된 정보의 소유자는 정보 사용을 제한할 수 있다. - 시스템 호출을 위해 전달된 모든 매개변수의 타당성을 검사, 시스템 자원에 모든 접근을 제어하도록 보장한다.

12 5. 운영체제 서비스 시스템 호출(System Call) 서비스
실행 중인 프로그램과 운영체제 간의 인터페이스로, 이를 이용하여 사용자 프로그램은 운 영체제의 기능을 서비스 받으며, API(Application Programming Interface)라고도 부른다. 호출 방법은 크게 두 가지이다. 프로그램에서 명령 또는 서브 루틴의 호출 형태로 실행, 어셈블리 명령어로 제공된다. - 고수준 언어(C, C++)로 작성한 프로그램에서 직접 수행 가능하며, 이때 호출은 미리 정의된 기능이나 서브루틴 호출과 비슷하다. 시스템에서 명령 해석기를 통해 대화 형태로 호출한다. - 개인 컴퓨터, 워크스테이션에서 사용된다. [그림 2-17] 시스템 호출 구조

13 5. 운영체제 서비스 시스템 호출(System Call) 서비스 UNIX에서의 시스템 호출
- UNIX시스템 호출은 프로그래머가 보통의 C서브루틴이나 함수를 호출하는 것과 같은 방법으로 호출. Ex) 표준 C라이브러리 서브루틴(함수) fread()를 사용하여 한 파일로부터 자료를 읽을 경우. - nread = fread(inputbuf, Size, Count, fileptr); read 시스템 호출하여 데이터를 읽을 경우. - nread = read(filedes, inputbuf, BUFSIZE); 서브루틴과 시스템 호출 사이의 차이점. - 서브루틴을 호출할 때 수행되는 코드는 비록 라이브러리로부터 링크되어 들어온 것이라도 최종 오브젝트 프로그램의 일부분이라는 점. - 시스템 호출에 의해 수행되는 코드는 호출하는 프로그램이 아니라 실제 커널의 일부분이라는 점. 즉, 호출하는 프로그램은 커널에 의해 제공되는 설비를 직접 이용하는 것. - 표준 I/O라이브러리 루틴은 효율성을 보장하지만, 궁극적으로 다시 시스 템 호출 인터페이스를 사용. - 라이브러리 루틴 fread()가 궁극적으로 read()시스템 호출에 대한 인터 페이스라는 것을 알 수 있음. 프로그램 코드 라이브러리 루틴 fread read 사용자 코드 커널 코드 사용자 공간 (사용자의 프로그램과 자료) 커널 공간 (범시스템 자원들)

14 5. 운영체제 서비스 운영체제가 제공하는 일반적인 시스템 호출은 다음과 같다. 프로세스 제어 파일 조작 장치 조작 정보 관리
- 종료, 취소, 적재(로드, Load), 수행 - 프로세스 생성, 종료, 속성 획득, 속성 지정 - 대기, 대기 이벤트(Event), 신호 이벤트 - 기억장치 할당 및 해제 파일 조작 - 파일 생성, 삭제, 오픈(Open), 폐쇄(Close), 속성 획득 및 지정 - 읽기(read), 쓰기(write), 재배치(Reposition) - 논리적 부착(Logically Attach) 장치 조작 - 장치 요구, 해제, 속성 획득 및 설정 - 읽기, 쓰기, 재배치 - 논리적 부착 또는 장치 제거 정보 관리 - 시간과 일자, 데이터의 설정과 획득 - 프로세스, 파일, 장치 속성의 설정과 획득 통신 - 통신 연결의 생성, 제거, 메시지 송수신 - 상태 정보 전달 - 원격 장치의 부착 및 제거

15 5. 운영체제 서비스 fork 호출 printf(“One\n”); pid = fork(); printf(“Two\n”);
PC (프로그램 카운터) A 호출 전 호출 후 printf(“One\n”); pid = fork(); printf(“Two\n”); printf(“One\n”); pid = fork(); printf(“Two\n”); PC PC A (부모프로세스) B (자식프로세스)

16 6. 운영체제 구조 단순 구조 운영체제 작고 간단하며 시스템 기능이 제한된 운영체제로, 최소한의 영역으로 대부분의 기능을 제공하나 모듈이 효율적으로 분할되어 있지 않다. 대표적인 예로 MS-DOS, 초기의 유닉스가 있다. MS-DOS - 구조화되어 있으나 인터페이스와 기능에 대한 계층이 잘 분리되지 않았다. 초기의 유닉스 - 커널과 시스템 프로그램 두 부분으로 구성, 커널은 시스템 호출 인터페이스 아래와 물리적 하드웨어 위에 여러 인터페이스와 장치 드라이버로 분리되어 있다. - 이후 커널의 여러 기능이 분할하는 형태로 개발, 처음 구성된 후 몇 년에 걸쳐 추가되고 확장되었다. - 이러한 단일(Monolithic) 커널 구조의 운영체제는 대부분의 기능이 프로시저(프로그램)들의 집합으로 커널에 구현되기 때문에 직접 통신하여 효율이 높으나 새 기능 추가를 위한 수정과 유지 보수가 매우 어렵다. [그림 2-19] 유닉스 운영체제 구조 [그림 2-18] MS-DOS 계층 구조

17 6. 운영체제 구조 계층 구조 운영체제 유사한 기능을 수행하는 요소를 그룹으로 묶어 최하위 계층(0계층)인 하드웨어에서 최 상위 계층(n계층)인 사용자 인터페이스에 이르는 다수의 계층(수준)으로 구성된다. 각 계층은 인접한 상위 또는 하위의 계층과 상호 작용하나, 사용자 프로세스의 요청을 수행하는 데 많은 계층을 거쳐야 하므로 성능이 저하된다. 전형적인 운영체제 계층은 상위 계층에 의해 수행될 수 있는 데이터 구조와 루틴의 집합으로 구 성된다. [그림 2-21]에서 M계층은 하위 계층(M-1계층)에 있는 연산을 수행할 수 있다. [그림 2-21] 운영체제 계층 [그림 2-20] 계층적 구조 운영체제

18 6. 운영체제 구조 계층적 접근 방법의 예 THE 운영체제 (그림 2-22) Venus 시스템 (그림 2-23)
- 1968년 다익스트라(Dijkstra)가 개발한 운영체제로, 계층적 접근 방법을 이용한 운영체제가 처음 사용되었다. - 총 6계층으로 구성, 메모리 관리 기법은 가상 메모리를 사용한다. - 입출력 버퍼링은 오퍼레이터 콘솔 계층 위에 있으므로 입출력 오류 조건이 오퍼레이터 콘솔에 대한 출력이 될 수 있다. Venus 시스템 (그림 2-23) - 프로세서 스케줄링과 기억장치 관리를 다루는 하위 계층(0-4)을 마이크로 코드화하여, 빠른 수행 속도 및 마이크로 코드화 계층과 상위 계층 사이를 명확하게 구분하는 장점을 제공한다. OS/2 운영체제 (그림 2-24) - MS-DOS에서 파생, MS-DOS의 제한성을 극복하기 위해 개발되었다. - 다중 작업(Multi Tasking), 이중 모드(Dual Mode) 운영 뿐만 아닌 새로운 특징이 추가되었고, 강력한 하드웨어 설계로 운영체제가 좀 더 계층적으로 설계되었다. [그림 2-24] OS/2 운영체제의 계층 구조 [그림 2-22] THE 운영체제의 계층 구조 [그림 2-23] Venus 운영체제의 계층 구조

19 6. 운영체제 구조 계층적 접근 방법 장단점 장점 1. 모듈화 2. 계층 구조는 시스템 검증과 오류 수정이 쉽다.
- 각 계층은 자신의 하위 계층 서비스와 기능만을 사용하는 방식으로 만들어진다. 2. 계층 구조는 시스템 검증과 오류 수정이 쉽다. - 첫 번째 계층은 기본 하드웨어를 사용해 기능을 만들었기 때문에, 나머지 시스템에 의문을 가지지 않고 오 류를 수정할 수 있다. - 첫 번째 계층의 오류가 수정되면 기능이 정확하다고 가정하고 두 번째 계층을 만들며, 이 과정을 반복한다. - 특정 계층에 오류 발견 시 하위 계층은 오류가 수정되었으므로, 해당 계층에 오류가 있다고 볼 수 있다. 3. 시스템 설계나 구현이 단순해진다. - 하위 계층이 제공하는 연산만을 사용하여 구현되므로 해당 계층은 연산 과정은 알 필요 없이 연산의 목적만 알면 된다. - 각 계층은 데이터 구조의 존재와 동작 그리고 좀 더 높은 계층으로부터 하드웨어를 숨기게 된다. 단점 1. 계층 정의 - 각 계층은 자신의 하위 계층만 사용 가능하므로 설계 시 신중해야 하지만, 모두 명확하게 정의할 수 없다. 2. 계층 구조 정의에 제한이 있다. - 보조기억장치 드라이버는 통상적으로 프로세서 스케줄러 위에 존재하나, 대형 시스템의 프로세서 스케줄러 는 교체(Swapping) 기능이 필요한데, 이는 보조 기억장치 드라이버 루틴이 프로세서 스케줄러 하위에 놓이도록 요구한다.

20 6. 운영체제 구조 마이크로 커널 구조 운영체제 1980년대 카네기 멜론 대학교에서 모듈화된 마이크로 커널(Micro-kernel)을 사용하여 마크(Mach)를 개발. 단일 커널의 크기가 커지면서 버그의 원인과 기타 오류를 구분하기 어렵고 동일한 메모리에서 실 행되므로 한 부분의 문제가 시스템 전체에 심각한 영향을 주는 단점을 해결하기 위해 개발된다. 커널에는 최소 기능만 포함시켜 크기를 줄이고 기타 기능은 사용자 공간으로 옮겨 사용자 영역에 서 수행되는 서버로 구현하는 방식이다. 커널 모드 - 커널의 규모를 축소화하고 시스템의 확장성 향상을 위해 메시지 전송과 하드웨어를 직접 다루는 부분을 비롯한 최소한의 기능만 동작하도록 구현한다. 사용자 모드 - 네트워크 시스템, 파일 시스템 상호 작용과 장치 관리 등 대부분의 운영체제 구성요소를 커널 외부, 즉 사용자 모드에서 실행하도록 사용자 영역의 서버로 구현한다. [그림 2-25] 단일 커널과 마이크로 커널

21 6. 운영체제 구조 마이크로 커널 구조 장단점 장점 1. 커널이 가볍다.
- 커널에서 필수 기능만 제공하고 기타 기능은 사용자 영역의 서버에서 제공하게 하여 커널을 가볍게 하였다. 2. 한 부분에서 발생한 문제가 시스템 전체에 영향을 주지 않는다. - 운영체제가 제공하는 서비스를 사용자 영역의 독립적인 서버에서 수행하므로 서버에서 잘못 수행하여도 다른 서버와 커널에 치명적인 영향을 주지 않는다. 3. 서버의 개발이 용이하고 운영체제 기능의 변경이 쉽다. - 운영체제의 많은 기능이 사용자 영역의 서버로 구현 가능하다. 4. 실시간 시스템에 활용. - 커널 내부에서 발생 지연이 작고 예측이 가능하다. 단점 1. 프로세스 간 통신 발생을 최소화하여야 한다. - 사용자 영역에서 수행 중인 서버들 사이에 빈번한 프로세스 통신이 발생하므로 성능에 있어 병목 지점으로 지적된다. 2. 속도가 느리다. - 응용 프로그램과 서버 간의 자료 교환을 위해 커널을 출입하는 문맥 전환(Context Switching) 때문에 속도가 느리다.

22 SUMMARY 운영체제 목적 운영체제의 역할 운영체제 기능의 발전 다중 프로그래밍과 시분할 시스템
운영체제는 편리성과 효율성의 두 가지 목적을 달성하기 위해 발전해왔다. 운영체제의 역할 운영체제는 조정자, 자원 할당자 또는 관리자, 다양한 입출력 장치와 사용자 프로그램을 제어하는 역할을 한다. 운영체제 기능의 발전 초기의 작업별 처리 시스템은 콘솔을 사용, 소프트웨어를 통해 프로그래밍하는 데 편리 함을 제공하였으나, 준비 시간(Set-Up Time)이 많이 필요했다. 일괄처리 시스템은 상주 모니터를 이용, 자동 작업 순서를 실현하여 컴퓨터 이용률을 전 반적으로 높였으나 입출력장치의 느린 속도로 프로세서 이용률이 낮았다. 이를 위해 버퍼링, 스풀링 기법이 제안되었다. 다중 프로그래밍과 시분할 시스템 다중 프로그래밍은 시스템 전체의 성능을 향상 시키기 위해 프로세서(CPU) 하나가 둘 이상의 프로그램을 처리하는 방식이다. 시분할 시스템은 프로세서 스케줄링과 다중 프로그래밍을 사용, 각 사용자에게 컴퓨터 를 시간적으로 분할하여 제공하며, 다수의 사용자가 컴퓨터를 대화형으로 사용할 수 있다.

23 SUMMARY 다중 처리 시스템 운영체제 발전 과정 운영체제 기능 운영체제 서비스 단순 구조 운영체제
둘 이상의 프로세서(처리기)가 여러 프로그램을 동시에 처리하는 것으로 신뢰성과 가용 성, 컴퓨터 능력 향상 등의 목적을 달성할 수 있다. 주/종 다중 처리 시스템 구성, 대칭적 다중 처리 시스템이 제안되었다. 운영체제 발전 과정 제 1세대(버퍼링, 스풀링, 일괄 처리 시스템), 제 2세대(다중 프로그래밍, 다중 처리, 시 분할 시스템), 제 3세대(범용 시스템, 다중모드 시스템), 제 4세대(네트워크, 가상 머신, 분산 처리, 개인 컴퓨터)로 발전하였다. 운영체제 기능 자원 관리, 시스템 보호, 네트워킹, 명령 해석기 시스템 관리 등의 기능을 수행한다. 운영체제 서비스 부트스트래핑 서비스, 사용자 서비스, 시스템 서비스, 시스템 호출 서비스 등을 제공한다. 단순 구조 운영체제 시스템 호출 계층은 프로세스 제어, 파일 및 장치 처리와 같은 기본적인 기능을 제공한다. 시스템 서비스는 프로그램 제어, 자원 할당, 보호 등의 다양한 형태로 분류할 수 있다.

24 SUMMARY 계층적 구조 운영체제 마이크로 커널 구조 운영체제
유사한 기능을 수행하는 요소를 그룹으로 묶어 최하위 계층(layer 0)인 하드웨어에서 최 상위 계층(layer n)인 사용자 인터페이스에 이르는 다수의 계층(수준)으로 구성된다. 시스템 설계나 구현이 단순해지고 시스템 검증과 오류 수정이 쉽다. 마이크로 커널 구조 운영체제 커널의 최소 기능만 내부에 포함, 커널의 크기를 대폭 축소하고 나머지 기능은 사용자 공간으로 이전하여 사용자 영역에서 수행되는 서버로 구현한다.

25


Download ppt "3. 운영체제의 발전 과정 제 2세대 (1960년대 초기) – 다중 프로그래밍, 다중 처리, 시분할 시스템"

Similar presentations


Ads by Google