티스토리 뷰
Role of an OS
사용자에게 서비스 제공자로서
Program development and execution , Process management, Memorymanagement, File management, Various I/O devices management, Protection and security 역할을 한다.
하드웨어의 자원관리자로서
자료구조와 알고리즘을 사용한다.
Main objectives of an OS :
사용하는데 편리함을 제공, 컴퓨터가 효율적으로 자원을 사용,
미래의 기술 변화나 새로운 하드웨어/소프트웨어에 맞춰 계속 발전하는 발전가능성
Evolution of OS :
운영체제가 발전하는 이유 :
new types of HW (새로운 유형의 하드웨어가 등장)
new services (새로운 서비스가 필요해지면서)
fixes(버그나 문제수정을 하기 위해 )
Moore’s Law(무어의 법칙)
: 시간이 지나면서 하드웨어(특히 반도체)의 성능은 좋아지고 가격은 낮아진다 하지만 반대로 인건비는 점점 비싸짐
운영체제 성능 지표 (Performance Metrics) : 운영체제 성능을 평가하는 중요한 기준
- CPU Utilization: CPU가 실제로 사용된 시간 비율. 높을수록 좋음. / 이용률
- Throughput: 일정 시간 내 처리된 작업 수. 많을수록 좋음. / 처리량
- Response Time: 사용자가 요청을 보낸 후 첫 응답을 받을 때까지의 시간. 짧을수록 좋음. / 응답시간
- Turnaround Time: 사용자가 요청을 보내고 결과를 받을 때까지 걸리는 총 시간. 짧을수록 좋음. / 반환시간
1950년대 중반 : serial processing 순차 처리 시스템
테이프, 천공카드 사용, 국가적 기밀사
human operator as OS : 사람이 운영체제 역할을 하고 직접 컴퓨터를 조작
Job to Job Transition : 모든작업이 순차적으로 움직이는것
예시: 1946년, 펜실베이니아 대학교의 ENIAC 컴퓨터 : 인간이 20시간 걸릴 계산을 컴퓨터는 30초 만에 수행!
사람들이 공유 소프트웨어(Shared Common Software)를 개발하기 시작
문제 :
1. 값비싼 자원의 비효율적인 사용
2. 느린 Job to Job Transition (high setup time, schduling time)
3. human operator as OS
1960년대 초반 : simple batch systems 일괄처리 시스템
초기 컴퓨터는 매우 비쌌기 때문에 프로세서 활용도를 극대화하는 것이 중요
목표 : 작업순서를 자동화, 여러 작업묶음을 배치하여 설정 시간 단축
특징 : Automatic job sequencing by batching jobs
Batch Monitor : 최초의 운영체제의 형태중 하나
1. 사용자가 여러 개의 프로그램(작업, 즉 Job)을 한꺼번에 테이프에 담아서 컴퓨터에 주면, OS가 이 작업들을 순서대로 자동 처리하는 시스템 예)GM OS, IBSYS
2. Resident Monitor (상주 모니터) : 항상 주기억장치에 상주하면서 초기 제어를 담당.
사용자가 작업을 묶어서 제출하면, 운영체제는 순서대로 하나씩 작업을 실행하고, 끝나면 결과를 출력하면서 다음 작업으로 넘어가는 자동 처리 시스템.
3. Job Control Language (JCL) : 간단한 스크립트 언어로 특수한 카드를 사용해서 컴퓨터에게 뭘 할지 알려줌.
Disirable Features(batch운영체제에서 바람직한 기능들)
1. CPU Protection (CPU 보호) : 사용자 프로그램이 CPU를 독점하지 못하게 막는다.
시스템 타이머를 사용해서 실행 시간을 측정하고, 특권 명령어로 지정해서, 운영체제만 실행 가능
2. Memory Protection (메모리 보호) : 사용자 프로그램이 운영체제가 있는 메모리 영역을 건드리지 못하게 하는 것.
운영체제(Monitor)는 항상 메인 메모리에 존재해야 함., 사용자가 프로그램을 실행할 때, 운영체제 영역을 수정하거나 접근하려고 하면, CPU가 이를 감지하고 오류 처리 후 제어를 운영체제로 넘김.
[ Monitor (OS) ] ← 메모리 상단에 항상 상주
[ Job A ] ← 사용자 작업
3. I/O Protection (입출력 보호) : 사용자 프로그램이 입출력 장치를 마음대로 제어하지 못하게 하는 것.
I/O 명령어도 특권 명령어로 지정해서, 운영체제만 실행 가능
4. Dual Mode (이중 모드)

5. 두가지모드를 지원하기 위한 모드비트(Mode bit)
mode bit : 0이면 커널 모드, 1이면 사용자 모드, kernel모드에 의해서만 바뀐다.
mode switch : 사용자 모드에서 커널 모드로 전환하는 것
6. 목표 : Resource protection (자원보호)

한계 : 1. 입출력 장치(I/O)가 너무 느림 , 2. CPU가 자주 쉬는 상태

1960년대 중반 : multiprogrammed batch systems
목표 : CPU Utilization (CPU 활용률)을 높이는 것!
여러 개의 작업(Job)을 동시에 메인 메모리에 올려둠, 기다리는 동안 다른 작업 시행
필요한 기술: Scheduling Algorithm (스케줄링 알고리즘) : 대기 중인 작업들 중 다음에 실행될 작업을 선택함

Uni-programming (단일 프로그래밍) : CPU는 한 번에 하나의 작업 만 처리해서, I/O명령이 들어오면 cpu는 멈춘다(wait !).
Multi-programming (다중 프로그래밍) : CPU낭비 없이 하나의 작업에 I/O명령이 들어올 경우 바로 다른 프로그램을 실행한다.
Disirable Features(multiprogrammed에서 필요한 운영체제에서 바람직한 기능들)
1. Relocation (재배치) : 메모리는 여러 프로그램이 공유해서 사용해서, 하나의 프로그램이 항상 고정된 장소에 올라가지 않는다. 운영체제는 프로그램이 어떤 위치에 있든 실행될 수 있도록 재배치를 할 수 있어야 한다.
2. Memory Protection (메모리 보호) : 한 프로그램이 다른 프로그램의 영역을 침범하면 안돼서, 이를 막고, 경계를 정해 감시한다.
3. MMU (Memory Management Unit) :
논리주소를 물리주소로 바꿔주는 장치이다.

- CPU가 논리 주소를 MMU에 보냄
- MMU 안의 Base Register가 10000이라고 가정 (이 프로그램이 메모리에서 시작되는 위치)
- CPU가 보낸 논리 주소 예: 2000
- MMU는 이 두 값을 더함 → 10000 + 2000 = 12000
- Bound Register (12000): 메모리 한계를 초과했는지 검사
- 문제가 없으면 → 물리 주소 12000으로 접근
문제가 있으면 → Exception (오류) 발생시킴 - 최종적으로 프로그램 데이터에 접근함 (오른쪽 그림의 Program 부분)
1960년대 후반 : time sharing systems
여러 사용자가 동시에 시스템을 사용할 수 있게 한다. -> 각각의 사용자에게 CPU를 번갈아 주는 방식
배경 : 집적회로, 사용자와 실행중인 작업과의 상호작용 필요, 컴퓨터는 싸졌는데 사람은 더 비싸짐(사람의 시간을 아껴야함)
Interactive Timesharing (대화형 시분할 시스템)
1. 모든 사용자에게 터미널 제공
터미널 : 사용자가 키보드와 모니터를 통해 컴퓨터와 상호작용 할 수 있도록 하는 장치
2. 운영체제가 사용자들을 번갈아가며 처리함 (Time Slices 사용)
time slices : 사용자에게 주어진 짧은 CPU사용시간
3. Time Slice가 끝나면 Round Robin 방식으로 다음 사용자 실행
Round Robin (라운드 로빈) : 고정된 시간단위로 프로세스를 순서대로 실행
preemtion(선점) : 현재 실행 중인 작업을 강제로 멈추고, 다음 사용자에게 CPU를 넘기는 것
4. 프로세스 전환이 자주 일어남
Process Switch (프로세스 전환): 하나의 작업에서 다른 작업으로 CPU 제어권이 바뀌는 것

Disirable Features(time sharing에서 필요한 운영체제에서 바람직한 기능들)
1. System timer : 일정한 시간 간격으로 인터럽트를 일으키는 하드웨어
System Timer Handler : 위에서 발생한 타이머 인터럽트를 받아 처리하는 **전담 처리기(핸들러)**예요.
타이머는 특권 명령으로 ,커널 모드에서만 작동가능하다.
2. Synchronization (동기화) : 여러 프로세스가 공유 자원을 동시에 사용할 때, 서로 간섭하지 않도록 정확하고 올바르게 실행되도록 조정하는 방법

3. System Call(시스템 호출) :
파일관리, 프로세스 제어, 메모리 관리 같은 복잡한 기능은 커널에서 처리된다. 하지만 사용자는 user mode에서 프로그램을 실행한다. 그래서 유저모드에서 커널모드로 넘어가려면 필요한 인터페이스가 system call방법이다.

- 유저 프로그램이 system call 명령을 실행함
- 이 명령어가 **인터럽트/예외(Exception)**를 발생시킴
- 운영체제는 유저 모드 → 커널 모드로 전환해서 요청 처리
- 처리가 끝나면 다시 커널 모드 → 유저 모드로 전환
목적 1. 시스템 자원보호 , 2.신뢰성 향상, 3.보안
보통 운영체제는 약 200개 정도의 시스템 콜을 제공함 : Highly abstract , Portable , Robust


'학교복습용 > 오퍼레이팅시스템 OS' 카테고리의 다른 글
| 오퍼레이팅시스템 6주차 / Processor Scheduling(9단원) (0) | 2025.04.02 |
|---|---|
| 오퍼레이팅시스템 4주차 / Process Deseription and Control(1) (0) | 2025.03.27 |
| 오퍼레이팅시스템 2주차 -(2) / Computer System Overview (0) | 2025.03.23 |
| 오퍼레이팅시스템 2주차 - (1) / Computer System Overview (0) | 2025.03.12 |
| 오퍼레이팅시스템 1주차 / Computer System Overview (0) | 2025.03.06 |
