티스토리 뷰

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가 자주 쉬는 상태

CPU는 전체 시간의 3.2%만 일하고, 나머지 96.8%는 놀고 있는 상태

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

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함