Download presentation
Presentation is loading. Please wait.
1
2 운영체제 소개
2
학습목표 운영체제의 역할을 통해 운영체제를 개발한 목적을 이해하고, 운영체제의 발전 과정 및 그에 따른 다양한 운영체제 유형의 특징을 살펴본다. 운영체제의 기본 구성과 운영체제가 제공하는 서비스를 이해한다. 운영체제 설계를 위한 모듈과 계층 구조를 이해한다. 내용 운영체제의 역할과 목적 운영체제의 유형별 특징 운영체제의 발전 과정 운영체제 기능 운영체제 서비스 운영체제 구조
3
1. 운영체제의 역할과 목적 운영체제 역할 운영체제는 컴퓨터 하드웨어와 응용 프로그램 간의 인터페이스 역할을 하며 CPU, 메모 리와 같은 컴퓨터 자원을 관리하고 사용자에게 편의를 제공한다. - 운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리 - 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공 컴퓨터 시스템은 일반적으로 사용자, 소프트웨어, 하드웨어 세 가지 요소로 구성된다. 컴퓨터 사용자 : 어떤 일을 수행하기 위해 컴퓨터를 사용하는 사람, 장치, 다른 컴퓨터를 의미. 하드웨어 : 연산을 위한 기본 자원을 제공하는 프로세서(중앙처리장치 , CPU), 메모리(기억장치), 다양한 장치(입출력장치 등)로 구 성. 소프트웨어 : 컴퓨터가 기능을 수행하는데 필요한 프로그램을 총칭. (ex: 운영체제, 각종 응용 프로그램 유틸리티 등) 응용 프로그램 : 어떤 문제를 해결하기 위해 사용자나 전문가에 의해 만들 어진 프로그램. (ex: 웹 브라우저, 한글 등의 워드 프로세서, 데이터베이스 관 리 프로그램, 비디오 게임 등) [그림2-1] 컴퓨터 시스템 구성요소와 운영체제
4
1. 운영체제의 역할과 목적 컴퓨터 자원을 관리한다는 측면에서 아래와 같이 운영체제의 역할을 정리할 수 있다.
- 사용자와 컴퓨터 간의 인터페이스 제공 - 자원의 효율적인 운영 및 자원 스케줄링 조정자 - 운영체제는 시스템을 운영하여 여러 운영 요소(하드웨어, 소프트웨어(프로그램), 데이터)를 적절하게 사용할 수 있도록 제어한다. - 다른 프로그램이 작업할 수 있는 환경만 제공할 뿐 직접 일을 못하는 조정자 역할만 한다. 자원 할당자 또는 관리자 - 컴퓨터 시스템이 문제를 해결하는 데 필요한 자원(프로세서 시간, 메모리 공간, 파일 저장 공간, 입출력장치 등)을 할당하는 업무를 한다. - 컴퓨터 시스템을 공정하고 효율적으로 운영하기 위해 자원을 어떻게 할당할 지를 결정하는 관리자 역할도 수행한다. 입출력장치와 사용자 프로그램 제어 - 컴퓨터 시스템의 부적절한 사용이나 오류를 방지하기 위해 사용자 프로그램의 실행을 제어한다. - 입출력장치를 동작시키고 통제하는 역할을 한다.
5
1. 운영체제의 역할과 목적 운영체제는 다음과 같은 기능을 제공한다.
[그림2-2] 운영체제 역할 운영체제는 다음과 같은 기능을 제공한다. 하드웨어와 사용자 간의 인터페이스를 정의한다. 사용자들이 하드웨어를 공동으로 사용할 수 있도 록 해준다. 사용자 간의 자원 스케줄링, 즉 자원 할당자 역할 을 수행한다. 입출력 보조 역할을 한다. 오류를 처리한다. 운영체제의 역할과 기능이 매우 다양하여 완벽히 정의하기 힘드나, 일반적으로 “컴퓨터 자원을 통제하고 할당하는 공통 기능을 컴퓨터 소프트웨어 하나로 통합한 것” 으로 정의한다. 구체적으로 표현하면, “컴퓨터 시스템에서 항상 실행되는, 응용 프로그램을 제외한 모든 프로그램 또는 커널 (Kernel)”이라 한다. ※ 커널(Kernel) - 운영체제의 핵심으로 메모리에 상주하며 운영체제의 다른 부분 또는 응용 프로그램 수행에 필요한 환경을 설정하는 소프트웨어. - 응용 프로그램 실행에 필요한 다양한 서비스를 제공하고 실행되는 프로세스를 스케줄링하는 역할.
6
1. 운영체제의 역할과 목적 운영체제의 목적 운영체제는 두 가지 주요 목적을 달성하기 위해 발전해왔다.
편리성 : 사용자가 프로그램을 개발하고 사용하는 데 좀 더 편리한 환경 제공하는 것. ex: 개인용 컴퓨터(PC, Personal Computer)의 GUI 환경 효율성 : 자원을 효과적으로 사용하기 위해 각 프로그램을 유기적으로 결합하여 시스템 전체 성 능을 향상시키는 것. - 처리 능력 (Throughput): 시스템의 생산성을 나타내는 대표 지표로 단위 시간당 처리하는 작업량. - 신뢰도 (Reliability): 하드웨어(펌웨어), 소프트웨어가 실패 없이 주어진 기능을 수행할 수 있는 능력. (시스템이 주어진 문제를 정확하게 해결하는 정도) - 응답 시간 (Turnaround time): 사용자가 시스템에 작업을 의뢰한 후 반응을 얻을 때까지의(처리완료) 시간. (시분할 방식 시스템과 온라인 시스템에서 사용하는 용어) - 사용가능도(Availability) : 가동률. 사용자가 일정 기간 동안 컴퓨터를 실제로 사용한 시간(비율). (시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도) [그림2-3] 운영체제 목적
7
1. 운영체제의 역할과 목적 운영체제 기능의 발전 초기의 컴퓨터 시스템 작업별 처리 시스템
- 속도가 느리고 온라인 판독기와 프린터에만 의존하여 작업을 수행하여 많은 시간이 소요되었다. - 컴퓨터에는 하드웨어만 있어 프로그래머가 콘솔(Console)용으로 작성한 프로그램을 종이 테이프나 펀치 카드에서 메모리로 적재한 후, 시작 주소를 설정하고 실행, 실행 과정은 콘솔을 통해 살펴볼 수 있었다. - 대부분 2진수나 8진수 기계어로 작성, 절대 주소를 사용했으며 라이브러리 루틴이 없었다. - 로더는 한번에 카드를 한장씩만 적재할 수 있을 정도로 용량이 작고, 메모리 내용은 대부분 사용자 자신이 작성한 프로그램이며, 수동 대화 방식으로 진행하여 프로그래머가 시스템 오퍼레이터(System Operator)가 되고 시스템 사용을 위해 신청을 예약하는 예약제도로 운영됐다. - 예약 시간 안에 작업을 끝마치지 못하면 다른 사용자에게 사용권을 넘겨주고 대기, 작업을 빠르게 끝마쳐도 남은 시간은 유휴시간이 된다. 후에 카드 판독기, 라인 프린터, 자기 테이프가 보편화 프로그래밍을 쉽게 하기 위해 어셈블러(Assembler), 로더(Loader), 링커(Linker) 등이 개발 라이브러리 개발 - 공통 기능을 새로 작성할 필요 없이 작성할 프로그램에 삽입 가능하게 되었다. 컴파일러 개발 - 포트란(Fortran), 코볼(COBOL, Common Business Oriented Language) 등 - 프로그래밍 업무는 쉬워졌으나 컴퓨터 동작은 복잡해졌다. - 포트란 컴파일러의 경우 8단계의 어셈블리(Assembly) 과정이 필요하며, 이로 인해 준비 시간(Setup Time) 단계가 많아 시간이 낭비되고 한 단계에서 오류 발생 시 처음부터 다시 수행해야 한다.
8
1. 운영체제의 역할과 목적 모니터 작업 준비 시간의 문제를 해결하고 컴퓨터 처리율을 높이기 위해 다음 방법을 고려할 수 있다. 1. 컴퓨터 운용을 촉진하기 위해 전문 오퍼레이터를 채용한다. - 프로그래머는 기계동작에 간섭할 필요 없음. - 전문 오퍼레이터는 하나의 작업 완료 시 다음 작업을 수행. - 단점 : 프로그램을 이해할 수 없어 오류수정이 어렵고, 메모리와 레지스터의 내용을 출력하여 오류를 수정해 야 하므로 프로그래머에게 많은 어려움이 있었음. 2. 유사 작업을 묶어 일괄 처리하는 방법을 작업 스케줄링 기법에 도입하여 준비 시간을 줄인다. - 오퍼레이터가 포트란->코볼->포트란 작업 수행 시 포트란->포트란->코볼 순으로 처리. 즉, 포트란을 위한 준비작업은 한번만 처리되므로 준비시간을 절약.
9
1. 운영체제의 역할과 목적 모니터 초기의 일괄 처리 시스템 (그림 2-4) - 진행 과정
컴퓨터로 카드 판독기와 테이프 드라이브를 작동시켜 데이터를 테이프에 저장. 2. 생성한 데이터 테이프의 연산 처리를 위해 7094컴퓨터의 입력 테이프 드라이브를 사용하여 입력. 3. 연산 처리된 데이터는 출력 테이프 드라이브에 의해 출력 테이프에 저장되어 다시 1401컴퓨터에서 출력을 위해 프린터의 입력 테이프로 사용. - 작업 중 문제 발생 시 오퍼레이터가 콘솔을 조사하여 사태 여부를 파악하고 필요한 조치를 취 해야 하는데, 이때 프로세서의 유휴 시간이 생성되는 문제점이 있다. [그림2-4] 초기의 일괄 처리 시스템
10
1. 운영체제의 역할과 목적 초기의 일괄 처리 시스템의 문제점을 해결하기 위해 개발한 자동 작업 순서(Automatic Job Sequencing)가 초기의 운영체제이다. 상주 모니터(Resident Monitor) - 자동 작업 순서에서 하나의 작업에서 다른 작업으로의 진행을 자동으로 제어하는 프로그램을 말한다. - 메모리에 상주하면서 프로그램 종료 시 상주 모니터로 제어를 복귀시키고 다음 프로그램을 위해 제어를 프로그 램에 다시 전달하여 프로그램과 작업이 자동으로 수행되도록 한다. - 영역을 보호하기 위해 경계 레지스터를 이용하여 구분, 주요 부분은 카드에 있는 명령어를 판독하고 지시를 전 달하는 역할을 수행하는 제어카드 해석기이다. (그림 2-6) 제어 카드(Control Card) - 상주 모니터가 어느 프로그램을 실행할 지에 대한 정보를 직접 제공하기 위해 도입되었다. - 다른 카드와 구별하기 위해 첫 번째 칸에 $ 문자를 삽입하거나 다른 코드(//)를 사용하였다. * $FORTRAN : 포트란 컴파일러를 실행. * $ASM : 어셈블러를 실행. * $RUN : 사용자 프로그램을 실행. [그림2-5] 제어 카드(작업 제어 언어) 사용 예 [그림2-6] 상주 모니터 영역과 메모리 배치도
11
1. 운영체제의 역할과 목적 오프라인 연산(장치 독립성) 카드 판독기와 라인 프린터를 자기 테이프 장치로 대체.
- 일괄 처리 시스템을 자동 작업 순서로 전환하며 성능은 향상되었으나, 유휴 시간이 발생하는 문제점을 해결 하기 위해 느린 카드 판독기와 라인 프린터를 자기 테이프로 대체하였다. - 프로세서가 카드를 직접 읽지 않고 자기 테이프에 먼저 복사하여 테이프가 충분히 채워지면 이것을 옮겨 입력 카드가 필요할 때 테이프로부터 내용을 읽어서 사용한다. - 카드 판독기와 라인 프린터는 주 컴퓨터가 아닌 오프라인(Off-line)으로 수행된다. 오프라인 처리 운영 방식 1. 자기 테이프로부터 직접 입출력 할 수 있는 특수목적 장치(카드 판독기, 라인 프린터) 이용. 2. 전용 소형 컴퓨터(IBM 1401)를 사용해 테이프에 복사하는 작업을 수행. - 전용 소형 컴퓨터는 주 컴퓨터의 보조 역할을 하는 하나의 프로세서로 보며, 이런 프로세서에 의한 처리는 성능 개선을 위해 함께 동작하는 다중 컴퓨터 시스템의 최초 개념이다. [그림2-7] 온라인 처리와 입출력장치를 위한 오프라인 처리
12
1. 운영체제의 역할과 목적 오프라인 처리의 장점 - 주 컴퓨터가 카드 판독기와 라인 프린터 속도의 영향을 받지 않고 빠른 자기 테이프 장치의 속도에만 영향을 받는다. - 직접 입출력 방식에서 오프라인 방식으로 변경하기 위한 별도의 수정 작업이 필요하지 않는다. Ex) 카드 판독기가 부착된 시스템에서 프로그램이 수행된다고 가정. * 카드 입력 필요 시 시스템은 상주 모니터에 있는 카드 판독기의 드라이버를 요청. * 이때 카드 판독기의 오프라인 동작을 변경하기 위해서는 장치명만 변경. * 운영체제는 카드 판독기의 드라이버가 아닌 자기 테이프 드라이버를 호출. 응용 프로그램은 두 경우에 모두 동일한 카드 데이터를 받게 됨. * 장치 독립성은 프로그램이 입출력을 요청했을 때, 실제로 사용하는 장치를 결정할 수 있는 경우에 가능. - 프로세서 하나가 여러 개의 카드 판독기에서 테이프 장치로, 또는 테이프 장치에서 프린터 시스템으로 서로 변경하여 사용할 수 있다. Ex) 프로세서가 카드 판독기가 카드를 읽은 것보다 두 배의 입력을 처리할 수 있다면… : 카드 판독기 두 개를 이용하여 프로세서가 쉬지 않고 입력을 처리하도록 구성 가능.
13
1. 운영체제의 역할과 목적 버퍼링(Buffering)
입출력장치의 느린 속도를 보완하여, 유휴 시간이 없도록 프로세서의 연산 과정과 함께 어떤 작업 의 입출력을 동시에 수행하는 운영체제의 기능 중 하나이다. 컴퓨터 하드웨어의 일부인 버퍼를 사용하며, 한 작업의 입출력과 그 작업의 계산만 함께 할 수 있 다. 데이터 구성 단위는 레코드로, 버퍼링의 성능은 처리되는 레코드 수에 따라 달라진다. - 레코드는 응용 프로그램에 의해 정의되는 논리적 레코드와 입출력장치의 특성에 의해 정의되는 물리적 레코드 로 나뉜다. Ex) 프로세서 == 입출력장치의 평균 속도(초당 읽어 들이는 레코드 수) : 버퍼링은 두 장치가 속도를 충분히 낼 수 있도록 해줌. 프로세서 > 입출력장치의 평균 속도 : 프로세서는 항상 빈 버퍼에서 입력을 기다리므로 버퍼링을 사용할 필요 없 음. 프로세서는 입출력장치의 속도의 제한을 받게 됨. [그림2-8] 버퍼링
14
1. 운영체제의 역할과 목적 스풀링(Spooling)
프로세서가 다른 부분을 판독하고 있는 동안 추가로 기록할 수 없는 테이프 시스템의 문제를 해 결하기 위해 추가 기록이 가능한 디스크의 특성을 이용하여 개발되었다. - 디스크 시스템 : 헤드가 디스크의 한 영역에서 다른 영역으로 빠르게 이동 가능하므로 추가기록이 가능. 디스크를 매우 큰 버퍼처럼 사용하여 입력장치에서 미리 읽어들여 출력 장치가 받을 수 있을 때 까지 출력 파일을 저장한다. 초기에 NASA의 휴스톤 계산 센터(Houston Computation Center)에 부가된 특수 기능으로 HASP(Houston Automatic Spooling Program)으로 알려져 있다. 별개의 오프라인 장치를 사용, 한 작업의 입출력을 수행하면서 다른 작업의 계산이 가능하고 많은 작업의 입출력과 계산을 함께 할 수 있다. 작업 풀(Job Pool) 데이터 구조를 제공한다. - 디스크에 읽혀져 실행을 위해 대기하는 여러 작업을 수행할 수 있도록 준비해 준다. - 디스크에 저장된 작업은 프로세서 이용률 향상을 위해 운영체제가 다음에 수행할 작업 선택을 돕는다. 테이프 스테이징(Tape Staging) - 자기 테이프의 전체 내용을 이용하기 전 디스크로 읽어들여 복사된 디스크에서 빠른 속도로 모든 연산이 수행되고 더 이상 테이프는 사용하지 않는 방법. [그림2-9] 스풀링
15
2. 운영체제의 유형별 특징 유형별 구분 다중 프로그래밍 시스템 시분할 시스템 분산 처리 시스템 다중 처리 시스템
단일 사용자 시스템
16
2. 운영체제의 유형별 특징 다중 프로그래밍 시스템
하나의 CPU와 메인메모리를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식 CPU의 사용률과 처리량이 증가 작업 스케줄링에서 가장 중요한 부분은 다중 프로그래밍(Multi Programming). 프로세서가 항상 수행할 작업을 가지도록 하여 프로세서 이용 률을 증진시키는 방법이다. 운영체제는 메모리에 있는 작업 중 하나를 택하여 실행을 시작한다. 작업이 어떤 일을 기다려야 하는 경우, 비다중 프로그래밍 시스템의 프로세서는 유휴 상태가 되지만 다중 프로그래밍 시스템에서는 운영 체제가 간단히 다른 작업으로 전환하여 수행한다. 작업을 위해 기다리는 것이 끝나면 프로세서를 다시 차지하며, 수행 될 작업이 메모리에 적재되어 있으면 프로세서는 유휴하지 않을 것 이다. [그림2-10] 다중 프로그래밍 시스템을 위한 메모리 구조 인터럽트를 이용하여 수행하는 프로세서 스케줄링의 다중 프로그래밍은 현대 운영체제 의 중심 주제이다. 다중 프로그래밍 운영체제는 아주 복잡하며, 여러 작업을 준비 상태로 두려면 이를 메모리에 보관 해야 하고 일정 형태의 메모리 관리가 필요하다. 또한 여러 개의 작업이 수행할 준비를 갖추고 있으면 이 중 하나를 선택하기 위한 결정 방법이 필 요하다.
17
2. 운영체제의 유형별 특징 시분할 시스템 (TSS, Time Sharing System)
다중 프로그래밍을 논리적으로 확장한 개념으로 프로세서를 통해 다중 작업을 교대로 수행한다. 사용자가 프로그램을 실행하고 있을 동안 자신의 프로그램과 접촉하기 위해 교대가 빈번히 일어 난다. 프로세서 스케줄링과 다중 프로그래밍을 사용해 각 사용자에게 컴퓨터를 시간적으로 분 할하여 나눠준다. 각 사용자는 메모리에 독립된 프로그램을 갖고, 프로그램은 입출력을 수행하는 아주 짧은 시간 동 안만 실행되어 많은 사용자가 컴퓨터를 공유하도록 한다. 각 트랜젝션(Transaction)이 짧아 각 사용자는 짧은 시간 동안만 프로세서를 사용한다. 한 사용자에서 다른 사용자로 재빠르게 전환하여 각 사용자가 자신의 컴퓨터가 있는 것처럼 착각 하게 한다. 1960년 이전에 제안되었으며, 초기에 개발된 시스템 중 하나가 MIT에서 개발한 CTSS(Compatible Time Sharing System)다. (1961년 IBM-709에 탑재되어 사용) 1970년대 초까지는 일반화되지 못했으나 오늘날의 시스템은 대부분 일괄 처리 방식과 시분할 방식을 모두 제공한다. 여러 작업이 메모리에 저장되어 있는 경우 한 작업이 다른 작업의 데이터를 변경하는 등의 작업 에 대한 보호가 필요하다. 다수의 사용자가 접근하는 파일은 접근 권한을 두어 특정 권한을 가진 사용자만 접근할 수 있도 록 파일 시스템을 보호해야 한다. 공유 자원의 경우 접근 순서도 조정할 수 있도록 기능을 제공해야 한다.
18
2. 운영체제의 유형별 특징 일괄 처리 시스템과 비교 대화식 입출력 일괄 처리 시스템 시분할 시스템
- 작업을 미리 정의된 각 제어 카드와 함께 읽어 들이고 작업을 완료하면 출력. - 처리 과정 중 발생할 수 있는 모든 경우에 대한 제어 카드를 제공해야 하므로 작업 제출과 완료까지의 반환 시간이 길어질 수 있다. - 오류 수정은 당시의 상태를 그대로 출력해야 가능하며, 오류를 수정한 후 다시 처음부터 수행해야 한다. 시분할 시스템 - 사용자와 시스템 간의 온라인 통신을 제공하여 사용자가 운영체제나 프로그램에 직접 명령을 주고 즉시 응답을 받을 수 있다. 대화식 입출력 입출력은 대화식으로 가능하며, 출력은 사용자를 위해 화면에 출력되고 입력은 키보드에서 읽어 들이는 대화식이 될 수 있다. 보통, 사람의 처리와 속도가 같으므로 종료까지 소요 시간이 길며, 이 경우 운영체제는 프로세서 를 다른 사용자의 프로그램으로 전환시킨다. [그림2-11] 시분할 시스템
19
2. 운영체제의 유형별 특징 분산 처리 시스템 (Distributed Processing System)
여러 개의 컴퓨터를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식. 시스템마다 운영체제와 메모리를 가지고 독립적으로 운영되며 필요할 때 통신하는 시스 템이다. 최근의 컴퓨터는 자원 공유, 연산 속도 향상, 신뢰성과 통신 등의 문제로 여러 개의 물리 적 프로세서에 연산을 분산하는 경향이 있다. 분산 시스템 구성 방법 강결합(단단히 결합된) 시스템 - 프로세서(처리기)가 기억장치와 클록(Clock)을 공유하며, 공유된 기억장치를 통해 통신. 약결합(느슨하게 결합된) 시스템 - 둘 이상의 독립된 컴퓨터 시스템을 통신선으로 연결. [그림2-12] 분산(약결합) 처리 시스템의 구성 예
20
2. 운영체제의 유형별 특징 다중 처리 시스템 여러 개의 CPU와 하나의 메인메모리를 이용하여 여러 개의 프로그램을 동시에 처리하 는 방식 마이크로프로세서 여러 개를 연결해 다중 프로세서를 만든다. 시스템은 프로세서(처리기)를 많이 사용해 신뢰성, 가용성, 컴퓨터 능력 등을 증가시킨다. 하드웨어 비용이 저렴해짐에 따라 단위 시간당 처리량을 증가시키기 위해 사용한다. 고가의 초고속 프로세서를 사용하지 않고도 대형 컴퓨터에 근접하는 계산 능력을 증대시킬 수 있 다. 다중 처리를 위한 운영체제 구성 방법은 비대칭(주/종)적 구성과 대칭적 구성이 있다. 주/종 다중 처리 시스템(Master/Slave Multi Process System) 비대칭적 구성으로 마스터 프로세서가 주가 되어 부가적인 슬레이브 프로세서를 관리하는 단일 처리 시스템이다. 형태가 단순하나 마스터 프로세서에 부하가 많아 신뢰도나 자원 사용에서는 비효율적이다. 입출력 요구처럼 운영체제의 개입이 요구되는 경우, 마스터 프로세서에 인터럽트를 요청해야 하 므로 인터럽트 수가 증가한다. [그림2-13] 주/종 다중 처리 시스템 구성
21
2. 운영체제의 유형별 특징 대칭적 구성(Symmetric Configuration) 다중 처리 시스템
모든 프로세서가 동일한 종류일 때 최적으로 구현되나, 교착 상태 및 기아 상태를 회피하기 위해 동기화해야 하기 때문에 구현이 매우 어렵다. 약결합 분산처리 시스템보다 신뢰성이 높고 자원을 효율적으로 사용할 수 있으며 오버헤드를 균 형 있게 분산하는 장점이 있다. 프로세서의 스케줄링은 분산된 형태로 수행되며 메모리에 공유된다. 입출력 요청이나 다른 유형의 인터럽트 발생 시 해당 프로세서는 프로세스 목록에서 엔트리를 갱 신하고 실행시킬 다른 프로세스를 찾는다. - 프로세서가 바쁜 상태를 계속 유지함을 의미하며 때로는 여러 프로세서에 의해 수행됨을 나타냄. 충돌을 예방하는 프로세스 동기화가 반드시 필요하다. - 모든 프로세서가 모든 입출력장치에 접근하여 참조할 수 있으므로 여러 프로세서가 동일 자원에 동시에 접근할 경우 충돌이 발생한다. [그림2-13] 대칭적 구성 다중 처리 시스템
22
2. 운영체제의 유형별 특징 단일 사용자 시스템 개인 컴퓨터
하드웨어 비용이 저렴해짐에 따라 컴퓨터 시스템 하나를 사용자 한 명이 전용하는 것. 최근 사용자의 편리함과 빠른 응답을 제공하기 위해 다중 작업(Multi-Tasking), 다중 사 용자(Multi-User) 환경으로 변하고 있다.
23
3. 운영체제의 발전 과정 운영체제의 발전 과정 운영체제와 컴퓨터 구조는 서로 많은 영향을 끼쳤으며, 이런 관찰을 통해 운영체제의 개 념을 올바르게 이해할 수 있다. 하드웨어와 같이 “세대”라고 불리는 발전 단계를 거쳤으며, 그 과정은 아래의 표와 같다 . [표 2-1] 운영체제의 발전 과정
24
3. 운영체제의 발전 과정 제 0세대 (1940년대) 제 1세대 (1950년대) – 버퍼링, 스풀링, 일괄처리 시스템
초기 시스템에는 운영체제가 없었으며, 사용자가 직접 기계어를 사용해 명령문을 작성 하였다. 프로그램을 작성할 때 컴퓨터에 필요한 작업을 모두 포함하고, 모든 명령어를 명시적으 로 표현하였다. 모든 작업은 예약을 통해 진행되고 컴퓨터는 프로그래머가 메인 콘솔에서 수동으로 운 영하였다. 제 1세대 (1950년대) – 버퍼링, 스풀링, 일괄처리 시스템 1952년 초, 자동차 제조회사 GM의 연구실에서 IBM 701 운영체제 개발, 이것이 운영체 제의 효시이다. 1955년, GM과 북아메리카 항공사가 IBM 704 운영체제를 공동으로 개발. IBM 사용자협회 SHARE(Semi-Automatic Business Research Environment)에서 운영체제 에 대한 토론회를 육성하여 1957년까지 IBM 704를 위한 자체 운영체제를 개발. IBM 1400 계열 같은 소형 컴퓨터는 운영체제 없이 작동하며, 입출력 제어 시스템인 IOCS(Input/Output Control System) 패키지를 사용.
25
3. 운영체제의 발전 과정 버퍼링, 스풀링 기법 적용. 유휴 기간을 줄이기 위해 작업을 일괄 처리하여 성능 향상.
초기 운영체제는 설치 시간(Setup Time)과 철거 시간(Teardown Time) 낭비를 줄이는데 관심을 가 짐. - 설치 시간 : 작업을 컴퓨터 시스템에 올리는 필요한 시간. - 철거 시간 : 작업을 컴퓨터 시스템에서 해체하는데 필요한 시간. 유휴 기간을 줄이기 위해 작업을 일괄 처리하여 성능 향상. 운영체제가 개발되기 전의 작업은 카드에서 개별적으로 적재되고 실행 중에는 각 작업이 전 시스 템을 차지. 각 작업은 완료 또는 오류가 발생할 때까지 실행되며, 작업이 끝나야 오퍼레이터가 기존 프로그램 과 카드를 제거하여 다음 작업을 실행 가능. 이 과정에서 시스템은 유휴 상태가 되므로, 이를 줄이고 성능을 향상시키기 위해 작업을 소형 보 조 컴퓨터의 테이프에 옮긴 다음 나중에 대형 컴퓨터로 처리되는 과정을 채택. 하드웨어 장치의 독립성을 위해 시스템 파일명 등장. 사용자가 하드웨어 장치 번호를 직접 코드화할 필요가 없어졌으며, 카드를 읽는 장치에 대해서는 표준 시스템 입력 파일, 인쇄 출력 장치에 대해서 표준 시스템 출력 파일을 지정 가능. 표준 파일명을 사용해 어셈블러와 컴파일러에서 링커(Linker)와 로더(Loader)로의 변환이 원활해 짐.
Similar presentations