아래 글은 CS(컴퓨터 과학) 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

📃 참고자료

 

[OS] Lecture 5. Process Scheduling (3/4) - SPN, SRTN, HRRN / 운영체제 강의

Lecture 5. Process Scheduling - Goals of scheduling - Criteria and Levels of scheduling - Scheduling policy - Basic scheduling algorithms - FCFC, RR, SPN, SRTN, HRRN, MLQ, MFQ - Course: Operating System ( CPA310, KOREATECH) - Instructor: Duksu K

youtu.be

 

 

 

# SPN (Shortest Process Next)

  • Non preemptive scheduling
  • 스케줄링 기준 (Criteria)
    - 실행시간 (burst time 기준)
    - Burst time 가장 작은 프로세스를 먼저 처리
        -> SJF(Shortest Job First) scheduling

장점

  • 평균 대기시간(WT) 최소화
  • 시스템 내 프로세스 수 최소화
    - 스케줄링 부하 감소, 메모리 절약 -> 시스템 효율 향상
  • 많은 프로세스들에게 빠른 응답 시간 제공

 

단점

  • Starvation (무한대기) 현상 발생
    - BT가 긴 프로세스는 자원을 할당 받지 못 할 수 있음
      -> Aging 등으로 해결 (e.g., HRRN)
  • 정확한 실행시간을 알 수 없음
    - 실행시간 예측 기법이 필요

 

 

# SRTN (Shortest Remaining Time Next

 

  • SPN의 변경
  • Preemptive scheduling
    - 잔여 실행 시간이 더 적은 프로세스가 ready 상태가 되면 선점됨

장점

  • SPN의 장점 극대화

 

단점

  • 프로세스 생성 시, 총 실행 시간 예측이 필요함
  • 자연 실행을 계속 추적해야 함 = overhead
  • Context switching overhead

* 구현 및 사용이 비현실적

 

 

 

 

# HRRN (High Response Ratio Next)

 

  • SPN의 변형
    - SPN + Aging concepts, Non preemptive scheduling

  • Aging concepts
    - 프로세스의 대기 시간(WT)을 고려하여 기회를 제공

  • 스케줄링 기준 (Criteria)
    - Response ratio 가 높은 프로세스 우선

 

- SPN의 장점 + Starvation 방지
- 실행 시간 예측 기법 필요 (overhead)

 

* WT = Waiting Time, BT = Burst Time

 

 

 

반응형

 

아래 글은 CS(컴퓨터 과학) 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

📃 참고자료

 

[OS] Lecture 5. Process Scheduling (2/4) - FCFS, RR / 운영체제 강의

Lecture 5. Process Scheduling - Goals of scheduling - Criteria and Levels of scheduling - Scheduling policy - Basic scheduling algorithms - FCFC, RR, SPN, SRTN, HRRN, MLQ, MFQ - Course: Operating System ( CPA310, KOREATECH) - Instructor: Duksu K

youtu.be

 

 

 

# 기본 스케쥴링 알고리즘(Basic Scheduling Algorithms)

 

FCFS (First Come First Service)

  • Non Preemptive scheduling
  • 스케쥴링 기준 (Criteria)
    - 도착 시간 (ready queue 기준)
    - 먼저 도착한 프로세스를 먼저 처리
  • 자원을 효율적으로 사용 가능
    - High resource utilization
  • Batch system에 적합, interactive system에 부적힙

 

단점

  • Convoy effect
    - 하나의 수행시간이 긴 프로세스에 의해 다른 프로세스들이 긴 대기시간을 갖게 되는 현상
       (대기시간 >> 실행 시간)
  • 긴 평균 응답시간(Response time)

 

 

 

라운드 로빈 (Round Robin)

  • Preemptive scheduling
  • 스케쥴링 기준 (Criteria)
    - 도착 시간 (ready queue 기준)
    - 먼저 도착한 프로세스를 먼저 처리
  • 자원 사용 제한 시간 (time quantum)이 있음
    - System parameter
    - 프로세스는 할당된 시간이 지나면 자원 반납 -> Timer runout
    - 특정 프로세스의 자원 독점(Monopoly) 방지
    - Context switch overhead가 큼
  • 대화형, 시분할 시스템에 적합
  • Time quantum(제한 시간)이 시스템 성능을 결정하는 핵심 요소
    - Very large (infinite) -> FCFS
    - Very smal time quantum -> processor sharing
       => 사용자는 모든 프로세스가 각각의 프로세서 위에서 실행되는 것처럼 느낌
            (체감 프로세서 속도 = 실제 프로세서 성능의 1/n)
  • High context switch overhead

 

 

반응형

 

아래 글은 CS(컴퓨터 과학) 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

📃 참고자료

 

 

- 다중프로그래밍 (Multi-programming)

 

  • 여러개의 프로세스가 시스템 내 존재
  • 자원을 할당 할 프로세스를 선택 해야 함
    - 스케쥴링 (Scheduling)

* 자원 관리

  • 시간 분할 (time sharing) 관리
    - 하나의 자원을 여러 스레드들이 번갈아 가며 사용
    - 예) 프레세서 (Processor)
    - 프로세스 스케쥴링 (Process scheduling) -> 프로세서 사용 시간을 프로세스들에게 분배
  • 공간 분할 (space sharing) 관리
    - 하나의 자원을 분할하여 동시에 사용
    - 예) 메모리 (memory)

 

 

-  스케줄링 (Scheduling)의 목적

  • 시스템의 성능(performance) 향상

 

대표적 시스템 성능 지표 (index)

  • 응답시간 (response time)
    - 작업 요청 (submission)으로부터 응답을 받을때까지의 시간
  • 작업 처리량 (throughput)
    - 단위 시간 동안 완료된 작업의 수
  • 자원 활용도 (resource utilization)
    - 주어진 시간 동안 자원이 활용된 시간

 

* 목적에 맞는 지표를 고려하여 스케줄링 기법을 선택

 

 

 

-  시스템 성능 지표들

  • 평균 응답 시간 (mean response time)
    - 사용자 지향적, 예) interactive systems
  • 처리량 (throughput)
    - 시스템 지향적, 예) batch systems
  • 자원 활용동 (resource utilization)
  • 공평성 (fairness)
    - 예) FIFO
  • 실행 대기 방지
    - 무기한 대기 방지
  • 예측 가능성 (predictability)
    - 적절한 시간안에 응답을 보장하는가
  • ....

 

 

-  대기시간, 응답시간, 반환시간

 

 

 

 

- 스케줄링 기준 (Criteria)

  • 스케줄링 기법이 고려하는 항목들
  • 프로세스 (process)의 특성
    - I/O-bounded or compute-bounded
  • 시스템 특성
    - Batch system or interactive system
  • 프로세스의 긴급성 (urgency)
    - hard- or soft- real time, non- real time systems
  • 프로세스 우선순위 (priority)
  • 프로세스 총 실행 시간 (total service time)
  • ...

 

 

- 스케줄링 기준 (Criteria)

  • 프로세스 수행
    = CPU 사용 + I/O 대기

  • CPU burst -> compute bounded
    - CP 사용 시간
  • I/O burst -> I/O bounded
    - I/O 대기 시간

  • Burst time은 스케줄링의 중요한 기준 중 하나

 

 

- 스케줄링의 단계 (Level)

  • 발생하는 빈도 및 할당 자원에 따른 구분

  • Logn-term scheduling
    - 장기 스케줄링
    - job scheduling
  • Mid-term scheduling
    - 중기 스케줄링
    - Memory allocation
  • Short-term scheduling
    - 단기 스케줄링
    - Process scheduling

 

- Long-term Scheduling

  • Job scheduling
    - 시스템에 제출 할 (Kernel에 등록 할) 작업(Job) 결정
       -> Admission scheduling, High-level scheduling
  • 다중 프로그래밍 정도(degree) 조절
    - 시스템 내에 프로세스 수 조절
  • I/O bounded 와 compute bounded 프로세스들을 잘 섞어서 선택해야 함
    - Why?
  • 시분할 시스템에서 모든 작업을 시스템에 등록
    - Logn term scheduling이 덜 중요

 

- Mid-term Scheduling

  • 메모리 할당 결정 (memory allocation)
    - Intermediate-level scheduling
    - Swapping (swap-in / swap-out)

 

 

 

- Short-term Scheduling

Process scheduling

  • Low-level scheduling
  • 프로세서 (processor)를 할당할 프로세스 (process)를 결정
    - Processor scheduler, dispatcher

 

가장 빈번하게 발생

  • Interrupt, block (I/O), time-out, Etc.
  • 매우 빨라야 함
    - E.g
    - average CPU curst = 100ms
      scheduling decision = 10ms
    - 10 x (100+10) = 9%
       of the CPU is being used simply for scheduling

 

 

 

# 스케줄링의 단계 (Level)

 

 

 

# 스케줄링 정책 (Policy)

  • 선점 vs 비선점
    - Preemptive scheduling, Non-preemptive scheduling

  • 우선순위
    - Priority

 

- Preemptive / Non-preemptive scheduling

1. Non-preemptive scheduling

  • 할당 받을 자원을 스스로 반납할 때까지 사용
    - 예) system call, I/O, Etc.

  • 장점
    - Context switch overhead가 적음
  • 단점
    - 잦은 우선순위 역전, 평균 응답 시간 증가

 

2. Non-preemptive scheduling

  • 타의에 의해 자원을 빼앗길 수 있음
    - 예) 할당 시간 종료, 우선순위가 높은 프로세스 등장
  • Context switch overhead가 큼
  • Time-sharing system, real-time system 등에 적합

 

- Priority (우선순위, 프로세스의 중요도)

1. Static Priority (정적 우선순위)

  • 프로세스 생성시 결정된 priority가 유지 됨
  • 구현이 쉽고, overhead가 적음
  • 시스템 환경 변화에 대한 대응이 어려움

 

2. Dynamic priority (동적 우선순위)

  • 프로세스의 상태 변화에 따라 priority 변경
  • 구현이 복잡, priority 재계산 overhead가 큼
  • 시스템 환경 변화에 유연한 대응 가능

 

 

반응형

 

아래 글은 CS(컴퓨터 과학) 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

📃 참고자료

 

 

 

 

 

# 프로세스(Process)와 스레드(Thread)

 

 

  • 프로세스는 자원을 할당하고 제어하는 일을 한다.
  • 제어부분만 따로 보는걸 스레드(Thread)라고 한다.
  • 프로세스는 하나인데 스레드는 여러개 일 수 있다.

 

 

- 스레드

  • Light Weight Process (LWP)
  • 프로세서 (e.g, CPU) 활용의 기본 단위
  • 구성요소
    - Thread ID
    - Register set (PC, SP 등)
    - Stack (i.e. local data)
  • 제어 요소 외 코드, 데이터 및 자원들은 프로세스 내 다른 스레드들과 공유
  • 전통적 프로세스 = 단일 스레드 프로세스

 

 

  • 지역 데이터 => 지역변수
  • 지역 데이터는 스택(Stack)영역에 할당된다.
  • 프로세스가 할당 받은 리소스는 공유한다.

 

  • 힙(Heap), 데이터, 코드는 리소스(Resource) 영역에 해당된다.
  • 각 스레드 마다 자기만의 작업영역(Stack 영역)을 가진다.

 

 

- 스레드의 장점

사용자 응답성 (Responsiveness)

  • 일부 스레드의 처리가 지연되어도, 다른 스레드는 작업을 계속 처리 가능

 

자원 공유 (Resource sharing)

  • 자원을 공유해서 효율성 증가 (커널의 개입을 피할 수 있음)
    예) 동일 address space 에서 스레드 여러 개

경제성 (Economy)

  • 프로세스의 생성, context switch 에 비해 효율적

 

멀티 프로세서 (Multi-processor) 활용

  • 병렬처리를 통해 성능 향상

 

 

 

- 스레드 사용의 예

 

  • 스레드 3개를 만들어서 각각 사용자 입력, 화면 출력, 스피커/마이크를 처리하게 한다.
  • 스레드는 서로 자원을 공유해서 사용 할 수 있기 때문에, 3가지 작업을 동시에 처리할 수 있음.

 

 

- 스레드의 구현

  • 사용자 수준 스레드 (User thread)
  • 커널 수준 스레드 (Kernel thread)

 

 

 

- 사용자 수준 스레드 (User Thread)

 

사용자 영역의 스레드 라이브러리로 구현 됨

  • 스레드의 생성, 스케쥴링 등
  • POSIX threads, Win32 threads, Java thread API 등

 

커널은 스레드의 존재를 모름

  • 커널의 관리(개입)를 받지 않음
    - 생성 및 관리의 부하가 적음, 유연한 관리 가능
    - 이식성 (portabillity)이 높음

  • 커널은 프로세스 단위로 자원 할당
    - 하나의 스레드가 block 상태가 되면, 모든 스레드가 대기
       (single-threaded kernel의 경우)

 

 

 

 

- 커널 수준 스레드 (Kernel Threads)

 

  • OS(Kernel)가 직접 관리
  • 커널 영역에서 스레드의 생성, 관리 수행
    - Context switching 등 부하(Overhead)가 큼

  • 커널이 각 스레드를 개별적으로 관리
    - 프로세스 내 스레드들이 병행 수행 가능
      -> 하나의 스레드가 block 상태가 되어도, 다른 스레드는 계속 작업 수행 가능

 

 

# Multi-Threading Model

 

 

  • 다대일(n:1) 모델
    - 사용자 수준 스레드

  • 일대일(1:1) 모델
    - 커널 수준 스레드

  • 다대다(n:m) 모델
    - n > m
    - 혼합형 스레드

 

 

- 혼합형 (n:m) 스레드

n개 사용자 수준 스레드 - m개의 커널 스레드 (n > m)

  • 사용자는 원하는 수 만큼 스레드 사용
  • 커널 스레드는 자신에게 할당된 하나의 사용자 스레드가 block 상태가 되어도, 다른 스레드 수행 가능
    - 병행 처리 가능
  • 효율적이면서도 유연함

 

 

 

 

반응형

 

아래 글은 CS(컴퓨터 과학) 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

📃 참고자료

 

 

 

 

# 인터럽트(Interrupt)

예상치 못한, 외부에서 발생한 이벤트 -> Unexpected, external events

 

 

- 인터럽트의 종류

  • I/O interrupt
  • Clock interrupt
  • Console interrupt
  • Program check interrup
  • Machine check interrupt
  • Inter-process interrupt
  • System call interrupt

 

 

- 인터럽트 처리 과정

 

 

 

- Context Switching (문맥 교환)

 

context -> 프로세스와 관련된 정보들의 집합

  • CPU register context => in CPU
  • Code & data, Stack, PCB => in memory

 

Context saving

  • 현재 프로세스의 Register context를 저장하는 작업

 

Context restoring

  • Register context를 프로세스로 복구하는 작업

 

Context switching

  • 실행 중인 프로세스의 context를 저장하고, 앞으로 실행 할 프로세스의 context를 복구하는 일
    - 커널의 개입으로 이루어짐

 

- Context Switch Overhead

Context switching에 소요되는 비용

  • os마다 다름
  • os의 성능에 큰 영향을 줌

 

불필요한 Context switching을 줄이는 것이 중요

  • 예, 스레드(thread) 사용 등

 

 

반응형

 

아래 글은 CS(컴퓨터 과학) 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

📃 참고자료

 

 

 

# Job vs Process

 

 

작업 (Job) / 프로그램 (Program)

  • 실행 할 프로그램 + 데이터
  • 컴퓨터 시스템에 실행 요청 전의 상태

 

프로세스 (Process)

  • 실행을 위해 시스템(커널)에 등록한 작업
  • 시스템 성능 향상을 위해 커널에 의해 관리 됨

 

 

프로세스의 정의

실행중인 프로그램

  • 커널에 등록되고 커널의 관리하에 있는 작업
  • 각종 자원들을 요청하고 할당 받을 수 있는 개체
  • 프로세스 관리 블록(PCB)을 할당 받은 개체
  • 능동적인 개체(Active entity)
    - 실행 중에 각종 자원을 요구, 할당, 반납하며 진행

 

Process Control Block (PCB)

  • 커널 공간 (Kernel space) 내에 존재
  • 각 프로세스들에 대한 정보를 관리

 

 

 

프로세스의 종류

 

구분 종류 설명
역할 시스템(커널)
프로세스
모든 시스템 메모리와 프로세서의 명령에 엑세스 할 수 있는 프로세스이다.
프로세스 실행 순서를 제어하거나 다른 사용자 및 커널(운영체제) 영역을 침범하지 못하게 감시하고, 사용자 프로세스를 생성하는 기능을 한다.
사용자
프로세스
사용자 코드를 수행하는 프로세스이다.
병행 수행 방법 독립
프로세스
다른 프로세스에 영향을 주지 않거나 다른 프로세스의 영향을 받지 않으면서 수행하는 병행 프로세스이다.
협력
프로세스
다른 프로세스에 영향을 주거나 다른 프로세스에서 영향을 받는 병행 프로세스이다.

 

 

 

# 자원(Resource)의 개념

커널의 관리 하에 프로세스에게 할당 / 반납 되는 수동적 개체(passive entity)

 

 

자원의 분류

  • H/W resources
    - Processor, memory, disk, monitor, keyboard, Etc.
  • S/W resources
    - Message, signa, files, installed, SWs, Etc.

 

 

# Process Control Block (PCB)

  • os가 프로세스 관리에 필요한 정보 저장
  • 프로세스 생성 시, 생성 됨

 

 

 

PCB가 관리하는 정보

  • PID : Process Identification Number
    - 프로세스 고유 식별 번호
  • 스케쥴링 정보
    - 프로세스 우선순위 등과 같은 스케쥴링 관련 정보들
  • 프로세스 상태
    - 자원 할당, 요청 정보 등
  • 메모리 관리 정보
    - Page table, segment table 등
  • 입출력 상태 정보
    - 할당 받은 입출력 장치, 파일 등에 대한 정보 등
  • 문맥 저장 영역 (Context save area)
    - 프로세스의 레지스터 상태를 저장하는 공간 등
  • 계정 정보
    - 자원 사용 시간 등을 관리

 

* PCB 정보는 os별로 서로 다름
  PCB 참조 및 갱신 속도는 os의 성능을 결정 짓는 중요한 요소 중 하나

 

 

# 프로세스의 상태 (Process States)

- 프로세스 - 자원 간의 상호작용에 의해 결정

 

 

프로세스 상태 및 특성

 

 

Process State Transition Diagram

 

 

 

Created State

  • 작업(Job)을 커널에 등록
  • PCB 할당 및 프로세스 생성
  • 커널
    - 가용 메모리 공간 체크 및  프로세스 상태 전이 -> Ready or Suspended ready

 

 

 

Ready State

프로세서 외에 다른 모든 자원을 할당 받은 상태

  • 프로세서 할당 대기 상태
  • 즉시 실행 가능 상태

 

Dispatch (or Schedule)

  • Ready state -> running state

 

 

 

Running State

  • 프로세서와 필요한 자원을 모두 할당 받은 상태

  • Preemption
    - Running state = ready states
    - 프로세서 스케쥴링 (e.g, time-out, priority chages)
  • Block / sleep
    - Running state -> asleep state
    - I/O 등 자원 할당 요청

 

 

 

Blocked / Asleep State

  • 프로세서 외에 다른 자원을 기다리는 상태
    - 자원 할당은 System call에 의해 이루어 짐
  • Wake-up
    - Asleep state -> ready state

 

 

Suspended State

  • 메모리를 할당 받지 못한(빼앗긴) 상태ㅐ
    - Memory image 를 swap device에 보관
       * Swap device : 프로그램 정보 저장을 위한 특별한 파일 시스템
    - 커널 또는 사용자에 의해 발생
  • Swap-out (suspended), Swap-in (resume)

 

 

Terminated / Zombie State

  • 프로세스 수행이 끝난 상태
  • 모든 자원 반납 후,
  • 커널 내에 일부 PCB 정보만 남아 있는 상태
    - 이후 프로세스 관리를 위해 정보 수집

 

 

# 프로세스 관리를 위한 자료구조

 

  • Ready Queue
  • I/O Queue
  • Device Queue

 

 

 

반응형

아래 글은 CS(컴퓨터 과학) 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

📃 참고자료

 

 

 

 

# 운영체제의 구조

 

커널 (Kernel)

  • os의 핵심 부문 (메모리 상주)
    - 가장 빈번하게 사용되는 기능들 담당 -> 시스템 관리 (processor, memory, Etc) 등
  • 동의어
    - 핵(neucleus), 관리자(supervisor) 프로그램, 상주 프로그램(resident program), 제어 프로그램(control program) 등

유틸리티 (Utility)

  • 비상주 프로그램
  • UI등 서비스 프로그램
  • 운영체제에서 커널을 나머지 부분에 있는 것들

 

 

 

1. 단일 구조

 

장점

  • 커널 내 모듈 간 직접 통신
    - 효율적 자원 관리 및 사용

단점

  • 커널의 거대화
    - 오류 및 버그, 추가 기능 구현 등 유지보수가 어려움
    - 동일 메모리에 모든 기능이 있어, 한 모듈의 문제가 전체 시스템에 영향 (예, 악성코드 등)

 

 

 

2. 계층 구조

장점

  • 모듈화
    - 계층 간 검증 및 수정 용의
  • 설계 및 구현의 단순화

 

단점

  • 단일구조 대비 성능 저하
    - 원하는 기능 수행을 위해 여러 계층을 거쳐야 함

 

 

 

3. 마이크로 커널 구조

 

커널의 크기 최소화

  • 필수 기능만 포함
  • 기타 기능은 사용자 영역에서 수행

 

 

 

# 운영체제의 기능

  • 프로세스 (Process) 관리
  • 프로세서 (Processor) 관리
  • 메모리 (Memory) 관리
  • 파일 (File) 관리
  • 입출력 (I/O) 관리
  • 보조 기억 장치 및 기타 주변장치 관리 등

 

Process Management

 

프로세스 (Process)

  • 커널에 등록된 실행 단위(실행 중인 프로그램)
  • 사용자 요청/프로그램의 수행 주체(Entity)

 

OS의 프로세스 관리 기능

  • 생성 / 삭제, 상태 관리
  • 자원 할당
  • 프로세스 간 통신 및 동기화(Synchronization)
  • 교착상태(Dealock) 해결

 

프로세스 정보 관리

  • PCB(Process Control Block)

 

 

Processor Management

  • 중앙 처리 장치(CPU)
    - 프로그램을 실행하는 핵심 자원
  • 프로세스 스케쥴링(Scheduling)
    - 시스템 내의 프로세스 처리 순서 결정
  • 프로세서 할당 관리
    - 프로세스들에 대한 프로세서 할당 -> 한 번에 하나의 프로세스만 사용 가능

 

Memory Management

 

주기억장치

  • 작업을 위한 프로그램 및 데이터를 올려 놓는 공간

 

Multi-user, Multi-tasking 시스템

  • 프로세스에 대한 메모리 할당 및 회수
  • 메모리 여유 공간 관리
  • 각 프로세스의 할당 메모리 영역 접근 보호

 

메모리 할당 방법(Scheme)

  • 전체 적재
    - 장점: 구현이 간단 / 단점: 제한적 공간
  • 일부 적재(Virtual memory concept)
    - 프로그램 및 데이터의 일부만 적재
    - 장점: 메모리의 효율적 활용 / 단점: 보조기억 장치 접근 필요

 

File Management

  • 파일 : 논리적 데이터 저장 단위
  • 사용자 및 시스템의 파일 관리
  • 디렉토리(Directory) 구조 지원
  • 파일 관리 기능
    - 파일 및 디렉토리 생성 / 삭제
    - 파일 접근 및 조작
    - 파일을 물리적 저장 공간으로 사상(Mapping)
    - 백업 등

 

I/O Management

  • 입출력( I/O ) 과정
    - os를 반드시 거쳐야 함

 

 

 

 

반응형

아래 글은 CS(컴퓨터 과학) 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

📃 참고자료

 

 

 

# 작업 수행 방식

  • Batch processing system (일괄처리 시스템)
  • Time-sharing system (시분할 시스템
  • Distributed processing system (분산처리 시스템)
  • Real-time system (실시간 시스템)

 

 

 

# Batch Systems (1950s ~ 1960s)

 

  • 모든 시스템을 중앙(전자계산소 등)에서 관리 및 운영
  • 사용자의 요청 작업(천공카드 등)을 일정 시간 모아 두었다가 한번에 처리
  • 시스템 지향적 (System-oriented)

 

장점과 단점

  • 장점
    - 많은 사용자가 시스템 자원 공유
    - 처리 효율(throughput) 향상

  • 단점
    - 생산성(productivity) 저하 -> 같은 유형의 작업들이 모이기를 기다려야 함
    - 긴 응답시간(turnaround time) -> 약 6시간 (작업 제출에서 결과 출력까지의 시간)

 

 

# Time Sharing sytems (1960s ~ 1970s)

  • 여러 사용자가 자원을 동시에 사용
    - os가 파일 시스템 및 가상 메모리 관리

  • 사용자 지향적 (User-oriented)
    - 대화형(conversational, interactive) 시스템
    - 단말기 (CRT terminal) 사용

 

 

장점과 단점

  • 장점
    - 응답시간 (response time) 단축 (약 5초)
    - 생산성 (productivity) 향상 -> 프로세서 유휴 시간 감소

  • 단점
    - 통신 비용 증가 -> 통신선 비용, 보안 문제 등
    - 개인 사용자 체감 속도 저하 -> 동시 사용자수 증가로 인한 시스템 부하 증가 초래

 

 

# Personal Computing

  • 개인이 시스템 전체 독점
  • CPU 활용률(utilization)이 고려의 대상이 아님
  • os가 상대적으로 단순함
    - 하지만, 다양한 사용자 지원 기능 지원

장점과 단점

  • 장점 -> 빠른 응답 시간
  • 단점 -> 성능(performance)이 낮음

 

Parallel Processing System

  • 단일 시스템 내에서 둘 이상의 프로세서 사용
    - 동시에 둘 이상의 프로세스 지원
  • 메모리 등의 자원 공유 (Tightly-coupled system)
  • 사용 목적
    - 성능 향상
    - 신뢰성 향상 (하나가 고장 정상 동작 가능)
  • 프로세서간 관계 및 역할 관리 필요

 

 

 

 

# Distributed Processing Systems

 

  • 네트워크를 기반으로 구축된 병렬처리 시스템 (Loosely-coupled system)
  • 물리적인 분산, 통신망 이용한 상호 연결
  • 각각 운영체제 탑재한 다수의 범용 시스템으로 구성
  • 사용자는 분산운영체제를 통해 하나의 프로그램, 자원처럼 사용 가능(은폐성, transparency)
  • 각 구성 요소들간의 독립성 유지, 공동작업 가능
  • Cluster system, client-server system, P2P 등

 

장점과 단점

  • 장점
    - 자원 공유를 통한 높은 성능
    - 고신뢰성, 높은 확정성

  • 단점
    - 구축 및 관리가 어려움

 

 

 

 

# Real-time Systems

  • 작업 처리에 제한 시간(deadline)을 갖는 시스템
    - 제한 시간 내에 서비스를 제공하는 것이 자원 활용 효율보다 중요

작업(task)의 종류

  • Hard real-time task
    - 시간 제약을 지키지 못하는 경우 시스템에 치명적 영향
    - 예) 발전소 제어, 무기 제어 등
  • Soft real-tiem task
    - 동영상 재생 등
  • Non real-time task

 

반응형

아래 글은 CS(컴퓨터 과학) 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

📃 참고자료

 

 

 

 

# 운영체제의 역할

  • User Interface (편리성)
    - CUI (Character user interface)
    - GUI (Graphical User interface)
    - EUCI (End-User Comfortable Interface)
  • Resource management (효율성)
    - HW resource (processor, memory, I/O devices, Etc.)
    - SW resource (file, application, message, signal, Etc.)
  • Process and Thread management
  • System management (시스템 보호)

 

 

 

# 컴퓨터 시스템의 구성

 

 

 

 

 

 

 

 

# 운영체제의 구분

 

동시 사용자 수

  • Single-user system
  • Multi-user system

 

동시 실행 프로세스 수

  • Single-tasking system
  • Multi-tasking system (Multiprogramming system)

 

 

작업 수행 방식 (사용자가 느끼는 사용 환경)

  • Batch processing system
  • Time-sharing system
  • Distributed processing system
  • Real-time system

 

 

# 동시 사용자 수

 

단일 사용자 (Single-user system)

  • 한 명의 사용자만 시스템 사용 가능
    - 한 명의 사용자가 모든 시스템 자원 독점
    - 자원관리 및 시스템 보호 방식이 간단 함
  • 개인용 장비(PC, mobile) 등에 사용
    - Windows 7/10, android, MS-DOS 등

 

 

다중 사용자 (Multi-user system)

  • 동시에 여러 사용자들이 시스템 사용
    - 각종 시스템 자원(파일 등)들에 대한 소유 권한 관리 필요
    - 기본적으로 Multi-tasking 기능 필요
    - os의 기능 및 구조가 복잡
  • 서버, 클러스터(cluster) 장비 등에 사용
    - Unix, Linux, Windows server 등

 

 

# 동시 실행 프로세스 수

 

단일작업 (Single-tasking system)

  • 시스템 내에 하나의 작업(프로세스) 만 존재
    - 하나의 프로그램 실행을 마친 뒤에 다른 프로그램의 실행
  • 운영체제의 구조가 간단
  • 예) MS-DOS

 

다중작업 (Multi-tasking system)

  • 동시에 여러 작업(프로세스) 의 수행 가능
    - 작업들 사이의 동시 수행, 동기화 등을 관리해야 함
  • 운영체제의 기능 및 구조가 복잡
  • 예) Unix / Linux, Windows 등

 

 

반응형

 

아래 글은 CS(컴퓨터 과학) 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

📃 참고자료

 

 

 

 

# 컴퓨터 하드웨어의 종류

 

프로세서 (Processor)

  • CPU
  • 그래픽카드 (GPU)
  • 응용 전용 처리장치 등

 

메모리 (Memory)

  • 주 기억장치
  • 보조 기억장치 등

 

주변장치

  • 키보드 / 마우스
  • 모니터, 프린터
  • 네트워크 모뎀 등

 

 

 

# 프로세서 (Processor)

컴퓨터의 두뇌 (중앙처리장치)

  • 연산 수행
  • 컴퓨터의 모든 장치의 동작 제어

출처; https://youtu.be/EdTtGv9w2sA

 

 

 

 

# 레지스터 (Register)

 

프로세서 내부에 있는 메모리

  • 프로세서가 사용할 데이터 저장
  • 컴퓨터에서 가장 빠른 메모리

 

레지스터의 종류

  • 용도에 따른 분류
    - 정용 레지스터, 범용 레지스터
  • 사용자가 정보 변경 가능 여부에 따른 분류
    - 사용자 가시 레지스터, 사용자 불가시 레지스터
  • 저장하는 정보의 종류에 따른 분류
    - 데이터 레지스터, 주소 레지스터, 상태 레지스터

 

사용자 가시 레지스터

종류 설명
데이터 레지스터
DR, Data Register
함수 연산에 필요한 데이터를 저장한다. 값, 문자 등을 저장하므로 산술 연산이나 논리 연산에 사용하며, 연산 결과로 플래그 값을 저장한다.
주소 레지스터
AR, Address Register
주소나 유효 주소를 계산하는 데 필요한 주소의 일부븐을 저장한다.
주소 레지스터에 저장한 값(값 데이터)을 사용하여 산술 연산을 할 수 있다.
기존 주소 레지스터 프로그램을 실핼할 때 사용하는 기존 주소 값을 저장한다. 기존 주소는 하나의 프로그램이나 일부처럼 서로 관련 있는 정보를 저장하며, 연속된 저장 공간을 지정하는 데 참조할 수 있는 주소이다. 따라서 기존 주소 레지스터는 페이지나 세그먼트처럼  블록화된 정보에 접근하는 데 사용한다.
인덱스 레지스터 유효 주소를 계산하는 데 사용하는 주소 정보를 저장한다.
스택 포인터 레지스터 메모리에 프로세서 스택을 구현하는 데 사용한다. 많은 프로세서와 주소 레지스터를 데이터 스택 포인터와 큐 포인터로 사용한다. 보통 반환 주소, 프로세서 상태 정보. 서브루틴의 임시 변수를 저장한다.

 

 

사용자 불가시 레지스터

종류 설명
프로그램 카운터
PC, Program Counter
다음에 실행할 명령어의 주소를 보관하는 레지스터이다. 계수기로 되어 있어 실행 할 명령어를 메모리에서 읽으면 명령어의 길이만큼 증가하여 다음 명령어를 가리키며, 분기 명령어는 목적 주소로 갱신할 수 있다.
명령어 레지스터
Instruction Register
현재 실행하는 명령어를 보관하는 레지스터이다.
누산기
ACCumulator
데이터를 일시적으로 저장하는 레지스터이다.
메모리 주소 레지스터
Memory Address Register
프로세서가 참조하려는 데이터의 주소를 명시하여 메모리에 접근하는 버퍼 레지스터이다.
메모리 버퍼 레지스터
Memory Buffer Register
프로세서가 메모리에서 읽거나 메모리에 저장할 데이터 자체를 보관하는 버퍼 레지스터이다. 메모리 데이터 레지스터(MDR, Memory Data Register)라고도 한다.

 

 

 

# 프로세서의 동작

 

 

 

# 운영체제와 프로세서

운영체제가 하는 역할이 프로세서를 관리하는 역할을 한다.

 

  • 프로세서에게 처리할 작업 할당 및 관리
    - 프로세스(Process) 생성 및 관리
  • 프로그램의 프로세서 사용 제어
    - 프로그램의 프로세서 사용 시간 관리
    - 복수 프로그램간 사용 시간 조율 등

운영체제

  • 컴퓨터 하드웨어를 관리하는 소프트웨어
    - 어플리케이션 프로그램(Application programs), 컴퓨터 유저, 컴퓨터 하드웨어 중간 매개 역할(Intermediary)

 

 

 

 

# 메모리 (Memory)

 

데이터를 저장하는 장치 (기억 장치)

  • 프로그램(os, 사용자SW 등), 사용자 데이터 등

 

메모리의 종류

  1. 레지스터
  2. 캐시
  3. 메인 메모리
  4. 보조기억장치

 

 

 

 

# 메모리의 종류

 

주기억장치 (Main memory)

  • 프로세서가 수행할 프로그램과 데이터 저장
  • DRAM을 주로 사용
    - 용량이 크고, 가격이 저렴
  • 디스크 입출력 병목현상 ( I/O bottleneck ) 해소

 

 

 

 

캐시 (Cache)

  • 프로세서 내부에 있는 메모리 (L1, L2 캐시 등)
    - 속도가 빠르고, 가격이 비쌈
  • 메인 메모리의 입출력 병목현상 해소

 

 

 

 

 

# 캐시의 동작

  • 일반적으로 HW적으로 관리 됨
  • 캐시 히트 (Cache hit)
    - 필요한 데이터 블록이 캐시 존재
  • 캐시 미스 (Cache miss)
    - 필요한 데이터 블록이 없는 경우

 

 

 

# 지역성 (Locality)

공간적 지역성 (Spatial llocality)

  • 참조한 주소와 인접한 주소를 참조하는 특성
    - 예) 순차적 프로그램 수행

 

시간적 지역성 (Temporal locality)

  • 한 번 참조한 주소를 곧 다시 참조하는 특성
    - 예) For 문 등의 순환 등

 

지역성은 캐시 적중률 (cache hit ratio)과 밀접

  • 알고리즘 성능 향상 위한 중요한 요소 중 하나

 

 

 

 

# 메모리의 종류

보조기억 장치 (Auxiliary memory / secondary memory / storage)

  • 프로그램과 데이터를 저장
  • 프로세서가 직접 접근할 수 없음 (주변장치)
    - 주기억장치를 거쳐서 접근
    - (프로그램 / 데이터 > 주기억장치) 인 경우는?
       * 가상 메모리(Virtual memory)
  • 용량이 크고, 가격이 저렴

 

 

# 메모리와 운영체제

메모리 할당 및 관리

  • 프로그램의 요청에 따른 메모리 할당 및 회수
  • 할당된 메모리 관리

 

가상 메모리 관리

  • 가상메모리 생성 및 관리
  • 논리주소 -> 물리주소 변환

 

 

# 시스템 버스 (System Bus)

하드웨어들이 데이터 및 신호를 주고 받는 물리적인 통로

 

 

 

종류 설명
데이터 버스 프로세서와 메인 메모리, 주변장치 사이에서 데이터를 전송한다. 데이터 버스를 구성하는 배선 수는 프로세서가 한 번에 전송할 수 있는 비트 수를 결정하는데, 이를 워드라고 한다.
주소 버스 프로세서가 시스템의 구성 요소를 식별하는 주소 정보를 전송한다. 주소 버스를 구성하는 배선 수는 프로세서와 접속할 수 있는 메인 메모리의 최대 용량을 결정한다.
제어 버스 프로세서가 시스템의 구성 요소를 제어하는 데 사용한다. 제어 신호로 연산장치의 연산 종류와 메인 메모리의 읽기나 쓰기 동작을 결정한다.

 

 

 

시간 레지스터 동작 설명
1 PC -> MAR PC에 저장된 주소를 프로세서 내부 버스를 이용하여 MAR에 전달한다.
2 Memory -> MBR MAR에 저장된 주소에 해당하는 메모리 위치에서 명령어를 인출한 후 이 명령어를 MBR에 저장한다. 이때 제어장치는 메모리에 저장된 내용을 읽도록 제어 신호를 발생시킨다.
PC + 1 -> PC 다음 명령어를 인출하려고 PC를 증가시킨다.
3 MBR -> IR MBR에 저장된 내용을 IR에 전달한다.

 

반응형

+ Recent posts