Computer Science/운영체제

2. OS Overview

조용우 2025. 2. 13. 22:23

운영체제의 역할

User Interface (편리성)

- CUI

- GUI

- EUCI

 

Resource management (효율성)

- HW resource (processor, memory, I/O devices, etc)

- SW resource (file, application, message, signal, etc)

 

Process and Thread management

 

System management (시스템 보호)


컴퓨터 시스템의 구성

 

Kernel

사용자가 kernel을 직접 접근하면, OS가 하드웨어를 제어하는 데 문제가 생길 수 있음.

 

따라서 직접 요청하는 것이 아닌, 필요한 기능이 있다면 OS(kernel)에 요청을 하는 통로가 System Call Interface(보통 함수 형태)

 

System call interface (System Library)

*Kernel이 사용할 수 있는 기능들 중, 사용자가 사용할 수 있는 기능들을 모아둔 것


운영체제의 구분

 

동시 사용자 수

Single-user system

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

Multi-user system

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

동시 실행 프로세스 수로 구분한 OS

 

Single-tasking system

  • 시스템 내에 하나의 작업(프로세스)만 존재
  • 운영체제의 구조가 간단
  • MS-DOS

Multi-tasking system

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

작업 수행 방식으로 구분한 OS

 

Batch processing system (1950s ~ 1960s)

일괄 처리 시스템

  • 모든 시스템을 중앙(전자계산소 등)에서 관리 및 운영
  • 작업들을 모아놓은 것을 한번에 처리하는 시스템
    •  준비 시간을 줄일 수 있는 장점이 있음

시스템 지향적

 

 

장점

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

단점

  • 생산성 저하, 긴 응답시간

한번에 작업을 모아서 처리하다 보니 시간이 너무 오래걸린다.

그래서 나온 것이

 

Time-sharing system (1960s ~ 1970s)

시분할 시스템

 

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

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

사용자 지향적

 

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

장점

  • 응답시간 단축
  • 생산성 향상

단점

  • 통신 비용 증가 (통신선 비용, 보안 문제 등)
  • 개인 사용자 체감 속도 저하 (동시사용자수 증가, 시스템부하 증가, 개인 관점에서 느려짐)

여럿이서 쓰니까 내거 처리하는데 오래 걸린다 그래서 나온게

 

Personal Computing

  • 개인이 시스템 전체 독점
  • CPU 활용률이 고려의 대상이 아님
  • OS가 상대적으로 단순함

장점

  • 빠른 응답시간

단점

  • 성능이 낮음

성능이 낮기 때문에 하나의 컴퓨터의 여러개의 프로세서를 넣어보면 어떨까

Parallel Processing System

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

하지만 프로세서를 늘리는건 여러 제약(공간, 비용)이 있다.

 

Distributed processing system

분산처리 시스템

 

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

장점

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

단점

  • 구축 및 관리가 어려움

 

Real-time system

실시간 시스템

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

작업의 종류

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

운영체제의 구조

커널 (Kernel)

  • OS의 핵심 부분 (메모리에 상주)
    • 가장 빈번하게 사용되는 기능들 담당
      • 시스템 관리(processor, memory, etc)
  • == 핵, 관리자 프로그램, 상주 프로그램, 제어 프로그램 등

유틸리티 (Utility) *kernel 을 제외한 나머지

  • 비 상주 프로그램
  • UI 등 서비스 프로그램

 

단일 구조

장점

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

단점

  • 커널의 거대화
    • 오류 및 버그, 추가 기능 구현 등 유지보수가 어려움
    • 동일 메모리에 모든 기능이 있어, 한 모듈의 문제가 전체 시스템의 문제로 이어짐

계층 구조

장점

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

단점

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

마이크로 커널 구조

커널의 크기 최소화 (필수 기능만 포함)


운영체제의 기능

다양한 리소스 관리

 

프로세스

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

프로세스 관리 기능

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

프로세스 정보 관리

  • PCB (Process Control Block)

 

프로세서

  • 중앙 처리 장치 (CPU)
  • 프로세스 스케쥴링
    • 시스템 내의 프로세스 처리 순서 결정
  • 프로세서 할당 관리
    • 프로세스들에 대한 프로세서 할당. 한번의 하나의 프로세스만 사용 가능

메모리

  • 주기억장치
  • Multi-user, Multi-tasking 시스템
    • 프로세스에 대한 메모리 할당 및 회수
    • 메모리 여유 공간 관리
    • 각 프로세스의 할당 메모리 영역 접근 보호
  • 메모리 할당 방법 (scheme)
    • 전체 적재
      • 장점: 구현이 간단
      • 단점: 제한적 공간
    • 일부 적재
    • 프로그램 및 데이터의 일부만 적재
      • 장점: 메모리의 효율적 활용
      • 단점: 보조기억장치 접근 필요

파일

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

입출력

OS를 반드시 거쳐서 입출력이 진행됨

입출력 장치 <-> OS <-> 프로세스 

 

보조 기억 장치 및 기타 주변 장치

 

그 외 (Disk, Networking, Security, etc)

'Computer Science > 운영체제' 카테고리의 다른 글

Computer System Overview  (0) 2025.01.23