Operating System
서론(Introduction)
* 운영체제 : 컴퓨터 하드웨어와 컴퓨터 사용자간의 매개체 역할을 하는 프로그램
* 운영체제의 목적
① 컴퓨터 시스템을 편리하게 이용 → 사용자 측면
② 컴퓨터 하드웨어의 효율적 이용 → 하드웨어 측면
* 운영체제의 발전
최초의 수작업(hand-on) ???????????? 다중프로그래밍(multiprogramming)과
시분할시스템(time-sharing system)으로 발전
* 컴퓨터 시스템의 구성
① hardware
② operating system
③ application programs
④ users
* hardware
- central processing unit(CPU), memory, I/O devices
- provides basic computing resources
* operation systems
- controls and coordinates the use of the hardware among the various programs for the various users
* application programs
- compilers, database systems, games, and business programs
- define the ways in which these resources are used to solve the computing problems of users
* users: 사람, 기계, 또는 다른 컴퓨터
|
| 사람 |
| 기계 |
| 다른 컴퓨터 |
|
|
|
|
|
|
|
| ||||
|
| 사용자1 |
| 사용자2 |
| 사용자3 | ........... |
| 사용자n |
|
| |||||||
|
|
|
|
|
| |||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
| 컴파일러
| 어셈블러 문장 편집기
| 데이터베이스 시스템
|
| ||||||||||||||
|
| |||||||||||||||||
|
| |||||||||||||||||
|
| 운 영 체 제 |
|
| ||||||||||||||
|
| |||||||||||||||||
|
| |||||||||||||||||
|
| |||||||||||||||||
|
|
|
|
| √ 컴퓨터 하드웨어 √ CPU : 중앙처리장치 √ 기억장치(memory) √ 입출력장치(I/O devices) |
|
|
|
|
| ||||||||
|
|
|
|
|
|
|
| |||||||||||
|
|
|
|
|
|
|
| |||||||||||
|
|
|
|
|
|
|
|
|
|
|
| |||||||
|
|
|
|
|
|
|
|
|
|
|
| |||||||
* 운영체제는 다수의 사용자들이 제시한 여러 종류의 응용프로그램 사이에서 하드웨어
사용을 제어하고 조정하는 기능을 수행
* 운영체제의 비유
① 행정부(government) - 컴퓨터 시스템의 동작에 있어서 하드웨어, 소프트웨어, 자료들 의 적절한 사용방법을 제공
② 자원할당자(resource allocator) - CPU시간, 기억장치 공간, 파일저장 공간, 입출력장치 의 적절한 할당
③ 제어프로그램 - 컴퓨터의 부적절한 사용 및 오류 방지를 위해 사용자 프로그램의
제어, 입출력장치를 동작시키고 제어한다.
* 운영체제의 보다 일반적인 정의
- 컴퓨터 상에서 항상 수행되는 프로그램(커널)으로서 응용프로그램을 제외한 모든 프로 그램
1.2 초기 시스템
* 사용자 콘솔로부터 직접 프로그램을 수행
① 수작업으로 프로그램을 메모리에 적재 | ???? ? ???? ? ???? | ⇒ | 수작업에 의한 대화적 성질 |
② 시작주소 설정을 위해 적당한 버튼을 누름 | |||
③ 콘솔에 있는 감시등을 관찰하여 프로그램 수행 감시 | |||
④ 오류 발생시 프로그램을 중지, 기억장치와 레지스터들의 내용 조사후 | |||
⑤ 콘솔로부터 직접 프로그램의 오류 수정 |
* 시간이 지남에 따라
① 카드판독기, 라인프린터, 자기테이프의 보편화
② assembler, loader, linker 등의 라이브러리 개발
③ 각 입출력장치에 대한 특정 서브루틴(device driver)
⇒ 매번 사용 때마다 device driver는 단순히 library로부터 사용된다
* 하나의 작업을 수행하는 단계
① 포트란 컴파일러 테이프 적재 | ???? ? ? ? ???? ? ? ? ???? | ⇒ | 작업준비시간(set-up time)이 길어짐 |
② 컴파일러 실행 | |||
③ 컴파일러 테이프 제거 | |||
④ 어셈블러 테이프 적재 | |||
⑤ 어셈블러 실행 | ⇒ | 어떤 단계에서 오류가 발생하면 사용자는 처음부터 다시 수행 | |
⑥ 어셈블러 테이프 제거 | |||
⑦ 목적 프로그램 적재(주기억 장치로) | |||
⑧ 목적 프로그램 실행 |
1.3 Simple Batch Systems
1.3.1 상주모니터(Resident Monitor)
* 기존방법의 문제점: 작업 준비시간 시 컴퓨터의 중앙처리장치는 쉬고 있음
⇒ 컴퓨터의 이용률을 높이고자 함
* 해결 방법
① 전문 컴퓨터 조작원의 고용:
- 프로그래머는 컴퓨터를 동작할 필요가 없음
- 하나의 작업이 종료되자마자 다음일 수행
- 오류 발생 시 프로그래머가 기억장치와 레지스터 점검. 오류 수정하는 동안 조작원 은 다음일 처리
② set-up time의 단축:
- 유사한 작업들을 한꺼번에 묶어서(batch) 그룹별로 수행
- 단점: 한 개의 일이 다 수행되지 못하고 중간에서 끝날 경우 dump 시키고 다른 job 을 load해서 다시 시작
③ 자동작업 순서(automatic job sequencing)
- 초기의 운영체제 형태
- 상주모니터(resident monitor) 프로그램 개발(기억장치에 상주)
⇒ 자동으로 제어를 한 작업에서 다른 작업으로 옮긴다.
* 상주모니터는 제어카드(control card)에 의해 어느 프로그램이 실행되어야 하는지
안다 (FORTRAN compiler, Assembler, ...)
* 제어카드의 종류
- $FTN : Execute the FORTRAN compiler
- $ASM : Execute the assembler
- $RUN : Execute the user program
- $JOB : First card of a job ????
` ???? boundaries of each job
- $END : Last card of a job ????
* 상주모니터의 구성
① 제어카드해석기(control card interpreter)
- 실행시에 카드상에 있는 명령어 판독, 전달
- 주기적으로 적재기(loader)에게 시스템프로그램과 응용프로그램을 기억장치에 적재
- 시스템의 입출력장치를 위한 device driver 보유
② 적재기
- 시스템의 입출력장치를 위한 device driver 보유
③ 작업 순서
* batch system의 단점
- user와 job 사이의 interaction이 없다
1.3.2 Overlapped CPU and I/O Operations
* 자동작업 순서(automatic job sequencing)로 향상이 되었으나 CPU 속도와 I/O 장치의 속 도가 다름으로 인해 CPU의 유휴시간이 생김
⇒ 입출력 동작이 시작되어 완료되는 동안 CPU는 쉬게 되고, CPU가 실행할 동안 입출력 장치는 쉬게 된다.
1.3.2.1 오프라인 연산(off-line processing)
* off-line 처리 방식: page 11, figure 1.4
* off-line 방식의 장점
- 주컴퓨터가 카드판독기와 라인프린터의 속도에 더 이상 영향을 받지않고 훨씬 빠른 자 기테이프장치의 속도에 의해 영향을 받는다.
- 하나의 CPU에 대해 다중의 카드판독기 테이프와 프린터 테이프 시스템 사용
⇒ CPU를 더 유용하게 사용
* off-line 방식의 단점
- 특정 작업을 수행상태로 만드는 데 지연시간 필요( tape을 초기 위치로 되돌린 다음 특 정 작업 탐색)
1.3.2.2 buffering
* 방법:
- 계산과 작업의 입출력을 동시에 수행
- 자료를 입력한 후 CPU가 그들을 연산하려고 하는 순간 입력장치는 바로 다음 입력을 시작
* 실질적으로 버퍼링은 CPU와 입출력장치의 둘 중에서 어느 하나가 먼저 종료할 수 있기 때문에 항상 CPU와 입출력장치를 동시에 수행하지 못함
⇒ 입출력 중심(I/O bound) 작업에서보다 CPU 중심(CPU bound) 작업에서 효과적
1.3.2.3 spooling(Simultaneous Peripheral Operation On Line)
* spooling
- 동기 : 테이프 시스템이 디스크 시스템으로 대치되어 빠른 속도로 CPU가
data를 쓸 수 있음
- 기능: 한 작업의 입출력과 다른 작업의 수행을 동시에 할 수 있다.
- 조건 : 용량이 큰 disk와 약간의 table → 입력의 image의 위치 기록
- Fig 1.5 in page 13
1.4 Multiprogrammed Batched Systems
* 방법:
① OS는 main memory에 여러 개의 job들을 (job pool 로부터 선택해서) 보관한다.
② 한 개의 job이 수행 중 다른 resource들을 기다릴 때 다른 job을 수행한다.
* 참고사항
- Job scheduling:
⇒ multiprogram이 가능하다
⇒ job pool로부터 여러 개의 job 들을 선택해서 main memory로 적재한다.
- memory management ⇒ 여러 개의 program을 동시에 memory에 저장하는 관리법
- CPU scheduling
⇒ 여러 개의 job들이 동시에 run 할 준비가 되어있을 때 이들 중 하나를 골라
실행하는 전략
1.5 Time-Sharing Systems (Multi-tasking Systems)
* 다중 프로그래밍
- 장점: 여러 가지 컴퓨터 resource (CPU time, memory, peripheral devices)를
효과적으로 사용
- 다중 프로그래밍의 단점 :
① user는 프로그램이 실행될 동안 작업과 interact 할 수 없다.
② program이 진행되는 동안 debugging 할 수 없다.
⇒ program과 data를 dump해서 debugging해야 한다.
* Time Sharing (=multi-tasking)
- 다중 작업들은 CPU의 교대 수행에 의해 수행된다.
- 작업 간의 교대 수행이 빈번하게 이루어져서 사용자는 프로그램이 수행
되고 있는 동안 interact 할 수 있다.
* batch system은 대화식이 거의 필요없는 큰 작업을 수행하는 데 아주 적합
하다.
* 대화식 작업들은 다수의 작은 작업들로 구성이 되어 있어서 다음 명령어
의 결과를 예측할 수 없다. ⇒ 짧은 응답이 필요한 경우 사용
* time sharing = CPU scheduling + multiprogramming
↓ ↓
interactivity CPU utility (batch)
* 용어 : process ⇒ program이 memory에 적재되고 실행되는 상태
* Multiprogramming and time-sharing ⇒ central themes of modern Operating Systems
1.6 Personal-Computer Systems
* Personal Computer
① a computer system dedicated to a single user
② CPU는 user program으로부터 운영체제를 protect 하지 못함
③ neither multiuser nor multitasking
④ MS-DOS는 file protection의 기능이 없다.
→ remote operation 할 때 다른 사용자가 file을 변형시키거나 손상
1.7 Parallel Systems(Multiprocessor Systems): 병렬 시스템
* parallel system(tightly coupled system)
- more than one processor
- sharing bus, clock and memory and pheripheral devices
- 장점:
① increase throughput(출력) ⇒ the speed up with n processors is not n
② increase reliability(신뢰성)
⇒ if one processor down, system does not be halted, it is just slowed down ⇒ graceful degradation
* multiprocessor system
- symmetric
- asymmetric
* symmetric multiprocessing
- each processor runs an identical copy of OS
- 장점 : many processes can run at once
- 단점 : one cpu may be sitting while another is overloaded
⇒ 극복: processors share certain data structure
* asymmetric
- each processor is assigned a specific task
- master processor controls the system
- I/O 문제는 remote job entry sites를 이용해 해결(front end processors)
⇒ main cpu handle lines and blocks of characters, instead of individual
characters
1.8 Distributed Systems(loosely coupled systems): 분산시스템
* distributed system:
- processors do not share memory or clock
- 처리기들은 자신의 local memory를 갖는다
- processors간의 대화는 고속의 bus나 telephone line을 이용
- 장점:
① 자원 공유(Resource Sharing)
② 계산 속도 증가(Computation Speed up)
⇒ 특정 계산을 각 처리기로 분산하여 수행
⇒ 부하 공유(load sharing) : 한 사이트에 과부하가 걸렸을 때 부하가 적은 다른 사 이트로 이동
③ reliability(신뢰성)
⇒ 각 사이트가 독립적일 때 한 사이트의 실패가 다른 사이트에 영향을 주지 않음
⇒ 각 사이트가 서로 연관이 되어 있으면 시스템의 하드웨어와 자료를 적당히 중복 시킴으로써 한 사이트가 고장이 나도 다른 사이트는 동작을 계속함
④ 통신(communication): e-mail
1.9 Real-time Systems(실시간 시스템)
* 실시간 시스템은 처리기의 동작이나 데이터의 흐름에 엄격한 시간 요구가 있을 때 사 용된다. ⇒ 전용 application에 있어서 제어 장치로 사용
* 실시간 system이 요구되는 사례
- 과학적 실험
- 의학 영상 시스템
- 산업 제어 시스템
- display 시스템
- 자동차 연료 분사 시스템
- 가정 응용 제어기
- 무기 시스템
* 실시간 시스템의 종류
- hard real-time system
- soft real-time system
* hard real-time system
- critical한 일들을 제시간에 끝낸다.
- second storage는 없거나 제한되었다. ⇒ short-term memory나 ROM으로 대치
- 진보된 OS의 특징들이 없다.
- time-sharing system과 혼합하여 사용될 수 없다.
* soft real-time system
- critical한 일이 다른 일들보다 우선 순위를 갖고 실행된다.
-응용분야 ⇒ multimedia, virtual reality, advanced scientific projects (undersea
exploration, planetary rovers)
-다른 system과 혼합하여 쓰일 수 있다.
◆ 가우리정보센터 < GBC >

Comments List