반응형
Operating System
OS가 무엇이냐?
⇒ OS는 프로그램이다!
OS는 Program이다.
- OS는 Application의 실행을 control하는 프로그램이다.
→ OS는 Application을 최소로 방해해야한다. - Application과 Hardware를 연결하는 인터페이스 역할을 하는 프로그램이다.
→ Programmer가 hardware를 건드리지 않아도 돼야 한다.
User/Computer Interface
- Programmer(Application Program을 작성하는 사람)가 hardware의 detail을 몰라도 된다.
- OS에 따라 다운로드 프로그램이 달라진다.
Application program의 실행은 OS 위에서 실행된다.
Library
- 하드디스크에서 데이터를 가져올 때 단위가 있다.
정수 하나만을 가져오지 않는다.
→ 정수가 포함되어 있는 한 블럭이 온다. - 메모리에 버퍼를 하나 만들어 놓고 정수를 모아 놓고 하나씩 가져다준다.
이 역할을 하는 것이 라이브러리이다. - 모든 입출력 문장들은 system call이 아니라 라이브러리 함수이다.
- 이 함수 안에서 입출력을 편하게 할 수 있도록 버퍼 관리를 한다.
- System call에는 READ, WRITE 두 개만 존재한다.
(printf, scanf 입출력)
User/Computer Interface가 정확하게 해주는 일?
모든 자원(I/O device, CPU, memory, ...)을 관리하며 프로그램들이 이를 효율적으로, 공평하게 사용할 수 있도록 시스템과 리소스를 관리한다.
- 프로그램 development를 도와준다.
- 프로그램 실행을 도와준다.
- I/O devices에 접근한다.
- file에 acsess 하는 것을 도와준다.
- 시스템 access 하는 것을 도와준다.
- 에러를 감지하고 응답하는 것을 도와준다.
- 어떤 자원을 얼만큼 사용했는지 기록해준다.
→ 이걸 보고 프로그램 순서를 조정하며 메모리 제공량을 변경한다.
Resource Manager
OS가 다루는 컴퓨터 자원
- I/O
- Main Memory
- Secondary memory
- Processor execution time
Kernel
메인 메모리 안에 들어 있는 OS의 부분
꼭 필요한, 자주 사용되어지는 중요한 OS 부분이다.
시스템에 따라 OS == Kernel인 것도 있다.
Evolution of Operating Systems
Serial Processing
완전 구식 프로그램 처리 과정
Simple Batch Systems
A 프로그램이 종료된 후 B 프로그램이 자동으로 시작되어 Operator가 개입하지 않아도 되는 시스템
여기까지는 한 번에 한 프로그램만 실행할 수 있었다.
UniProgramming
CPU가 한 번에 하나의 프로그램만 실행 하는 것
CPU가 I/O 작업이 끝날 때까지 기다려야한다.
- Run: CPU 사용
- Wait: I/O 작업
→ CPU의 3.2%만 사용하는 낭비가 된다.
MultiProgrammed Batch Systems
Program을 중단시키고 다른 프로그램을 실행시키는 작업이 가능하게 되었다.
→ 중간에 Program을 바꿀 수 있게 되었다.
MultiProgramming
하나의 작업이 I/O 작업을 위해 기다려야 할 때 CPU가 다른 작업을 할 수 있는 것
MultiProgramming에서 중요한 조건
- 실행하려는 프로그램 A, B, C가 모두 동시에 메모리에 있어야 한다.
⇒ 메모리가 나뉘어질 수 있어야 한다. - 중간중간 OS가 개입해 실행하는 프로그램을 다른 프로그램으로 바꿀 수 있어야 한다.
(프로그램 상태를 save, restore)
A Program 실행
↓
A의 I/O 작업 → OS 개입
↓
B Program 실행
↓
B의 I/O 작업 → OS 개입
↓
C Program 실행
↓
C의 I/O 작업 → OS 개입
아직 Interactive하지 않다. (상호작용 X)
→ I/O가 일어나지 않으면 프로그램이 변경되지 않는다.
User가 컴퓨터 앞에 앉아 있을 수 있을 때는 Time Sharing System이 실행되고 난 이후이다.
Time Sharing Systems
일단 time slice 단위로 시간을 나누고 timeout이 될 때까지 실행하다가 다른 프로그램을 실행시킨다.
- 당연히 여러 프로그램들이 동시에 memory에 올라가 있어야 한다.
- I/O 작업을 할 때도 프로그램이 변경된다.
Q. Multi Programming 시스템은 TimeSharing 시스템이다.
→ 맞을 수도 있고 아닐 수도 있다.
Q. TimeSharing 시스템은 Multi Programming 시스템이다.
→ O
단, TimeSharing 시스템과 Multi Programming 시스템은 프로그램이 바뀌는 시점이 다르다.
- TimeSharing 시스템 = 시간에 의해서 프로그램이 바뀐다.
- Multi Programming 시스템 = I/O 입출력에 의해서 프로그램이 바뀐다.
Batch MultiProgramming | TimeSharing | |
주된 목적 | CPU 사용도를 최대화 하는 것 I/O 작업이 없으면 계속 기다림 |
Response Time을 최소화 하는 것 Time Slice조정이 중요 -> 너무 짧으면 OS가 끊임없이 끼어듦 |
반응형
'Computer Science > 운영체제' 카테고리의 다른 글
Chapter 3-1. Process Description and Control (0) | 2023.03.31 |
---|---|
Chapter 2-2. Operating System Overview (0) | 2023.03.26 |
Chapter 1-3. (Computer System Overview) (0) | 2023.03.25 |
Chapter 1-2. (Computer System Overview) (0) | 2023.03.25 |
Chapter 1-1. (Computer System Overview) (0) | 2023.03.25 |