CS/운영체제

[운영체제] 1. 운영체제의 개요

hyomee2 2025. 2. 20. 16:49

운영체제의 역할

1. User Inteface (편리성)

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

2. Resource Management (효율성)

  • HW resource (processor, memory, I/O devices, ...)
  • SW resource (file, application, message, signal, ...)

3. Process and Thread Management

4. System Management (시스템 보호)

 


컴퓨터 시스템의 구성


운영체제의 구분

1. 동시 사용자수에 따라

(1) Single-user system (단일 사용자)

1) 한 명의 사용자만 시스템 사용 가능

  •  한 명의 사용자가 모든 시스템 자원 독점
  •  자원관리 및 시스템 보호 방식이 간단

2) 개인용 장비(PC, mobile) 등에 사용

  •  Windows 7/10, android, MS-DOS 등 

(2) Multi-user system (다중 사용자)

1) 동시에 여러 사용자들이 시스템 사용

  • 각종 시스템 자원(파일 등)들에 대한 소유 권한 관리 필요
  • 기본적으로 multi-tasking 기능 필요
  • OS의 기능 및 구조가 복잡

2) 서버, 클러스터 장비 등에 사용

  • Unix, Linux, Windows server 등

 

2. 동시 실행 프로세스 수에 따라

(1) Single-tasking system (단일 작업)

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

(2) Multi-tasking system (다중 작업)

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

 

3. 작업 수행 방식에 따라

(1) 순차처리 (~1940s)

1) 운영체제 개념 X

  • 사용자가 기계어로 직접 프로그램 작성
  • 컴퓨터에 필요한 모든 작업 프로그램에 포함

2) 실행하는 작업 별 순차 처리

  • 각각의 작업에 대한 준비 시간 소요

(2) Batch Systems (일괄 처리 시스템) (1950s ~1960s) 

1) 모든 시스템을 중앙(전자계산소 등)에서 관리/운영

2) 사용자의 요청 작업(천공카드 등)을 일정 시간 모아 두었다가 한 번에 처리

3) 시스템 지향적

4) 장점

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

5) 단점

  •  생산성 저하 (같은 유형의 작업들이 모이길 기다려야 한다.)
  •  긴 응답시간(작업 제출~결과 출력까지의 시간. 약 6시간)

(3) Time Sharing Systems(시분할 시스템) (1960s ~ 1970s)

1) 여러 사용자가 자원을 동시에 사용

  •  OS가 파일 시스템 및 가상 메모리 관리

2) 사용자 지향적

  • 대화형 시스템
  • 단말기 사용

3) 장점

  • 응답 시간 단축 (약 5초)
  • 생산성 향상

4) 단점

  • 통신 비용 증가 (통신선 비용, 보안 문제 등)
  • 개인 사용자 체감 속도 저하 (동시 사용자 수 ↑ -> 시스템 부하 ↑  -> 속도 ↓(개인 관점))

 

(4) Personal Computing

1) 개인이 시스템 전체 독점

2) 현재 주로 사용

3) CPU 활용률이 고려 대상이 아님

4) OS가 상대적으로 단순(혼자 쓰니까 여러명 관리할 필요 X)하지만 다양한 사용자 지원 기능 지원

5) 응답 시간이 빠르지만 성능이 낮다.

(5) Parallel Processing System

1) 단일 시스템 내에서 둘 이상의 프로세서 사용 (동시에 둘 이상의 프로세스 지원)

2) 메모리 등의 자원 공유

  • CPU는 여러 개지만 기타 자원들(기억장치, 주변장치)은 공유해서 사용

3) 사용 목적

  •  성능 향상
  •  신뢰성 향상 (CPU가 여러 개니까 하나가 고장나도 성능이 좀 떨어질 뿐 정상 동작 가능)

4) 프로세서 간 관계 및 역할 관리 필요

(6) Distributed Processing Systems

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

1) 물리적인 분산, 통신망 이용한 상호 연결

2) 각각 운영체제 탑재한 다수의 범용 시스템으로 구성

3) 사용자는 분산운영테제를 통해 하나의 프로그램, 자원처럼 사용 가능 (은폐성, transparency)

4) 각 구성 요소들 간의 독립성 유지, 공동작업 가능

5) ex) cluster system, client-server system, P2P 등

6) 장점

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

7) 단점

  •  구축 및 관리가 어려움

(7) Real-time Systems (실시간 시스템)

: 작업 처리에 제한 시간(deadline)을 갖는 시스템

  • 제한 시간 내에 서비스를 제공하는 것이 자원 활용 효율보다 중요

1) 작업의 종류

1. Hard real-time task

  •  시간 제약을 지키지 못하는 경우 시스템에 치명적인 영향
  • ex) 발전소 제어, 무기 제어 등

2. Soft real-time task

  • 동영상 재생 등

3. Non real-time task


운영체제의 구조

1. 커널과 유틸리티

(1) 커널(Kernel)

  • OS의 핵심 부분(메모리에 항상 올라가 있음)
  • 시스템 관리(processor, memory, ...) 등 가장 빈번하게 사용되는 기능들 담당
  • Hardware resource management(processor, memory, I/O devices, ...)과 Software resource management(files, mesages, processes, ...)
  • = 핵 = 관리자 프로그램 = 상주 프로그램 = 제어 프로그램

(2) 유틸리티(Utility)

  • 커널을 제외한 부분
  • 비상주 프로그램
  • UI 등 서비스 프로그램

 

 

2. 운영체제 구조의 종류

(1) 단일 구조

  • 하나의 커널에 모든 기능 포함

1) 장점

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

2) 단점

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

(2) 계층 구조

1) 장점

  • 모듈화 -> 계층간 검증 및 수정 용이 (해당 계층만 수정하면 되므로)
  • 설계 및 구현의 단순화

2) 단점

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

(3) 마이크로 커널 구조

  • 앞선 구조들은 커널이 너무 커지는 문제 있음 
    • sol) 커널에는 필수 기능만 담고, 나머지는 사용자 영역에서 응용프로그램처럼 실행하자 (마이크로 커널 구조)
  • 커널 크기 최소화
    • 필수 기능만 포함
    • 기타 기능은 사용자 영역에서 수행


운영체제의 기능

한마디로 말하자면 "관리" 이다.

1. Process Management

* 프로세스

: 커널에 등록된 실행 단위(실행 중인 프로그램)

: 사용자 요청/프로그램의 수행 주체(entity)

(1) OS의 프로세스 관리 기능

  • 생성/삭제, 상태관리
  • 자원 할당
  • 프로세스 간 통신 및 동기화(synchronization)
  • 교착상태(deadlock, 여러 프로세스가 하나의 자원을 동시에 쓰려고 할 때 자원을 두고 싸우는 것) 해결

(2) 프로세스 정보 관리

  • PCB(Process Control Bloc)

 

2. Processor Management

* 프로세서

: 중앙 처리 장치(CPU)

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

 

* 프로세스 스케줄링

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

(1) 프로세서 할당 관리

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

 

3. Memory Management

* 주기억장치

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

(1) Multi-user, Multi-tasking 시스템

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

(2) 메모리 할당 방법(scheme)

1) 전체 적재

  • 장점: 구현이 간단
  • 단점: 제한적 공간

2) 일부 적재 (virtual memory concept)

: 프로그램 및 데이터의 일부만 적재

  • 장점: 메모리의 효율적 활용
  • 단점: 보조기억 장치 접근 필요

 

4. File Management

* 파일

: 논리적 데이터 저장 단위

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

(2) 디렉토리 구조 지원

(3) 파일 관리 기능

  • 파일 및 디렉토리 생성/삭제
  • 파일 접근 및 조작
  • 파일을 물리적 저장 공간으로 사상(mapping)
  • 백업 등

 

5. I/O Management

(1) 입출력(I/O) 과정

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

 


* 본 게시글은 아래 강의를 시청한 후 작성한 내용입니다.
https://www.youtube.com/watch?v=nxl_cUd55Ag&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=2