[운영체제] - Lecture 2. OS Overview

Junyeong Fred Kim·2021년 12월 24일
0

운영체제

목록 보기
2/27
post-thumbnail

운영체제의 역할

👉 User Interface(편리성)

  • CUI (Character User Interface)
  • GUI (Graphical User Interface)
  • EUCI (End-User Comfortable Interface)

👉 Resource management (효율성) (HW/SW 리소스 관리)

  • 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-user System)

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

다중 사용자 (Multi-user System)

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

👉 동시 실행 프로세스 수

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

단일작업 (Single-tasking system)

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

다중 작업 (Multi-tasking System)

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

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

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

순차 처리 (운영체제 개념이 존재하지 않던 시기)

  • 컴퓨터에 필요한 모든 작업을 프로그램에 포함
    - (프로세서에는 명령어 저장 방법, 계싼 대상, 결과 저장 위치와 방법, 출력 시점, 위치 등이 모두 담겨있다.)
  • 각각의 작업에 대한 준비 시간이 소요

Batch Systems (일괄처리 시스템)

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

장점:

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

단점:

  • 생산정 저하 (같은 유형의 작업들이 모이기를 기다려야 함
  • 긴 응답시간


Time Sharing Systems (시분할 시스템)

  • 사용자 지향적 (User-oriented)
    - 대화형 시스템
    - 단말기 사용
  • 여러 사용자가 자원을 동시에 사용
    - OS가 파일 시스템가상 메모리 관리

장점:

  • 응답시간(response time) 단축
  • 생산성 향상
    - 프로세서 유휴 시간 감소

단점:

  • 통신 비용 증가 (단말기를 통해 접속하기 때문에)
    - 통신선 비용, 보안 문제
  • 개인 사용자 체감 속도 저하
    - (동시 사용자 수 ↑ ➡ 시스템 부하 ↑ ➡ 느려짐 (개인 관점)

Personal Computing

  • 개인이 시스템 전체 독점
  • CPU 활용률(utilization)이 고려의 대상이 아님
    - 얼마나 효율적이냐 보다, 얼마나 편리하냐에 초점
  • OS가 상대적으로 단순함

장점:

  • 빠른 응답 시간

단점:

  • 성능이 낮음 (효율적이지 않기 때문)

Parallel Processing System (병렬처리 시스템)

  • 단일 시스템 내에서 둘 이상의 프로세서 사용
    - 동시에 둘 이상의 프로세스 지원
  • 메모리 등의 자원 공유 (Tightly-coupled system)
  • 사용 목적
    - 성능 향상
    - 신뢰성 향상 (하나의 CPU가 고장나도 CPU가 넘겨받아 전체 시스템은 문제 없다.)
  • 프로세서간 관계 및 역할 관리 필요


Distributed Processing Systems (분산처리 시스템)

  • 네트워크를 기반으로 구축된 병렬처리 시스템
    (Loosely-coupled system)

장점:

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

단점:

  • 구축 및 관리가 어려움

Real-time Systems

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

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


운영체제의 구조

👉 커널 (Kernel)

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

👉 유틸리티 (Utility)

  • 비상주 프로그램
    - 커널을 제외한 나머지 (가끔 사용) 필요한 순간 메모리에 올려 사용
  • UI 등 서비스 프로그램

👉 단일 구조

커널에 모듈을 한 번에 모아둔 것

장점:

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

단점:

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

👉 계층 구조

단일구조의 단점보완을 위함. 현재 대부분 사용

장점:

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

단점:

  • 단일구조 대비 성능 저하
    (원하는 기능 수행을 위해 여러 계층을 거쳐야 한다.)

👉 마이크로 커널 구조

  • 커널의 크기 최소화
    - 필수 기능만 포함
    - 기타 기능은 사용자 영역에서 수행


운영체제의 기능

👉 Process Management

프로세스 (Process)

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

OS의 프로세스 관리 기능

  • 생성/삭제, 상태관리
  • 자원 할당
  • 프로세스 간 통신 및 동기화(synchronization)
  • 교창상태(deadlock) 해결
    (여러개의 프로세스에 대해 중재)

프로세스 정보 관리

  • PCB(Process Control Block)

👉 Processor Management

중앙 처리 장치(CPU)

  • 프로그램을 실행하는 핵심 자원

프로세스 스케줄링(Scheduling)

  • 시스템 내의 프로세스 처리 순서 결정

프로세서 할당 관리

  • 프로세스들에 대한 프로세서 할당
    (한 번에 하나의 프로세스만 사용 가능)

👉 Memory Management

주기억장치 (ex) DRAM)

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

Multi-user, Multi-tasking 시스템

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

메모리 할당 방법(scheme)

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

👉 File Management

(파일: 논리적 데이터 저장 단위)

사용자 및 시스템의 파일 관리

디렉토리(directory) 구조 지원

파일 관리 기능


👉 I/O Management

입출력(I/O) 과정

  • OS를 반드시 거쳐야 한다.

profile
기억보다 기록

0개의 댓글