본문 바로가기
운영체제

[OS] 정의, 구조, 작업, 구성 요소

by 파스텔코랄 2023. 3. 6.

운영체제

컴퓨터 시스템의 4가지 구성요소

  1. 사용자(User)
  2. 응용프로그램(Applications) : (word processor, web browser, games, ...)
  3. 운영체제(Operating system)
  4. 하드웨어(Hardware) : (CPU, memory, IO devices)

운영체제(OS, Operating System)

  • 응용 프로그램과 컴퓨터 하드웨어 사이의 중개자 역할
  • 컴퓨터 하드웨어 리소스 관리
  • 애플리케이션을 위한 일부 서비스 제공

사용자 뷰(User view)의 운영체제

  • 응용 프로그램 실행
  • 컴퓨터 시스템을 사용에 편리

시스템 뷰(System view)의 운영체제

  • 리소스 할당자
      H/W 리소스 : CPU, 메모리, I/O 장치
      S/W 리소스 : 파일, 소켓, 세마포어 등
  • 제어 프로그램
      I/O 장치의 애플리케이션 및 운영 실행 제어

운영체제 정의

  • 운영체제의 정의는 전공서적별로 조금씩 다르다. 모호(Ambiguous)하다.
    이 강좌에서는 "컴퓨터에서 항상 실행되는 프로그램"으로 운영체제를 정의한다.
    커널(kernel)과 의미가 통하고 이외의 다른 모든 것은 시스템 프로그램 또는 응용 프로그램이다.

 


컴퓨터시스템 운영  

컴퓨터시스템 조직

  • 각 I/O 장치 컨트롤러는 특정 장치 유형을 담당하고 로컬 버퍼(local buffer)가 존재한다.

디스크 I/O 작업

  • 디스크 컨트롤러 : 장치 컨트롤러의 로컬 버퍼장치(device) 간 데이터 이동
    CPU : 장치 컨트롤러의 로컬 버퍼메인 메모리(main memory) 간 데이터 이동
  • CPU와 I/O 장치는 독립적으로 자체 작업 수행 가능하다.
    → 작동이 끝나면 장치 컨트롤러는 CPU에게 인터럽트(inrerrupt) 신호를 주어 알린다.

인터럽트 처리(Interrupt handling)

  • 인터럽트가 발생시 CPU는 수행중인 작업을 중지하고 인터럽트 서비스 루틴(ISR) 호출한다.

  1. inst.M 실행시 디스크 인터럽트가 발생하면
  2. 디스크 인터럽트를 위해 인터럽트 벡터 테이블로 이동하여 인터럽트 주소 확인후
  3. 해당하는 디스크 인터럽트 서비스 루틴을 동작한다.

인터럽트 타임라인

.I/O 장치의 전송이 끝나면 인터럽트가 발생하고 ISR을 호출시킨다.

 


저장장치 구조

주기억장치(Main memory)

  • CPU가 직접 액세스 할 수있는 저장 매체
  • DRAM(Dynamic Random Access Memory) : 휘발성 물질

보조기억장치(Secondary memory)

  • 대규모 비휘발성 저장 용량 제공
  • HDD(Hard Disk Drives)
  • NAND 플래시 메모리
  • SSD(Solid State Drives)

저장장치 계층

  • 레지스터(Register)
  • CPU 캐시(cache) : SRAM
  • 주기억장치(Main memory) : DRAM
  • 보조기억장치(secondary memory) : HDD, NAND, SSD
  • 광디스크(Optical Disk) : CD, DVD
  • 자기테이프(Magnetic Tape)

다양한 저장 매체의 특성

레벨 1 2 3 4 5
이름 레지스터 CPU 캐시 주기억장치 보조기억장치 광디스크
크기 ~ 1 KB ~ 16 MB ~ 64 GB < 1 TB ~ 10 TB
구현기술 여러 포트가 있는 사용자 지정 메모리, CMOS 온칩 또는 오프칩 CMOS SRAM CMOS DRAM 플래시 메모리 자기 디스크
접근 시간(ns) 0.25-0.5 0.5-25 80-250 25,000-5,000,000 5,000,000
대역폭(MB/sec) 20,000-100,000 5,000-10,000 1,000-5,000 500 20-150
관리 컴파일러 하드웨어 OS OS OS
백업 캐시 주기억장치 디스크 디스크 CD 또는 테이프

 


캐싱(Caching)

  • 프로그램 실행을 위해 명령과 데이터는 HDD로부터 CPU 레지스터로 로드되어야한다.

  • 캐싱 : 더 빠른 저장 장치에 데이터를 저장하고 동일한 데이터의 이후 요청접근 속도를 향상시킨다.

캐싱의 특징

  1. 캐싱은 시스템의 여러 레벨많은 환경에서 수행된다.
      CPU 캐시, 운영 체제의 버퍼 캐시, 디스크 캐시 등
      웹 캐시, 스트리밍 캐시 등
  2. 요청된 데이터가 있는지 확인하기 위해 캐시가 먼저 확인된다.
      캐시에 데이터가 있는 경우 : 데이터는 캐시에서 직접 사용
      캐시에 데이터가 없는 경우 : 데이터는 캐시로 먼저 복사되고 캐시에서 사용
  3. 캐시의 크기에 한계가 있다.
      따라서 교체 정책 필요
      예) LRU, LFU, clock 등
  4. 캐시된 데이터는 신중하게 처리된다.
      데이터의 여러 사본이 존재 가능 → 데이터 불일치
  5. 캐시 일관성
      다중 프로세서 환경에서 모든 CPU는 캐시에 가장 최근의 값을 가진다.
  6. 분산 환경의 상황이 더 복잡

다중 프로세서 환경에서의 데이터 일관성

 


운영체제 구조

멀티프로그래밍

  • 여러 프로그램이 동시에 주메모리에 유지되고 CPU는 다중화된다. → CPU 사용률이 증가
  • 단일 프로그램으로 CPU, I/O 장치를 항상 사용 X
  • CPU에 항상 실행할 프로그램이 있도록 프로그램을 구성
  • 스케줄링으로 하나의 프로그램을 선택하고 실행
  • 기다려야 할 때(예) I/O 요청) OS는 다른 프로그램으로 전환

시분할

  • 시분할은 멀티프로그래밍의 논리적 확장이다.
    예) UNIX
  • 사용자는 키보드, 마우스를 사용하여 프로그램에 명령 후 즉시 결과를 기다린다.
      → 응답 시간이 짧아야한다. (일반적으로 1초 미만)
  • CPU는 사용자가 각 프로그램과 상호 작용할 수 있도록 프로그램을 매주 자주 전환한다.
      → 응답 시간을 최소화한다.

 


운영체제 작업

이벤트 구동형(event driven)

  • 프로그램, I/O 요청, 사용자가 없을 때, OS는 조용히 어떤 이벤트가 발생까지 대기한다.

이벤트

  • 하드웨어 : 디스크 인터럽트, 키보드 인터럽트, 마우스 인터럽트 등
  • 소프트웨어 : 0으로 나누기, 잘못된 메모리 액세스, 시스템 호출 등
  • 기타 오류 : 무한 루프 등

듀얼 모드

  • 사용자 모드 / 커널 모드
  • 권한이 있는 명령은 커널 모드에서 실행 가능
  • 하드웨어에서 제공하는 모드 비트(Mode bit, PSW(프로그램 상태 워드))
      사용자 모드 (1) / 커널 모드 (0)

예) 시스템 호출은 모드를 커널로 변경하고 반환 시 사용자로 재설정합니다.

 


프로세스 관리

프로세스는 실행 중인 프로그램

  • 프로그램 : 수동적(passive) 엔티티
  • 프로세스 : 능동적(active) 엔티티, 시스템 내의 작업 단위

프로세스에는 작업을 수행하기 위한 리소스가 필요

  • CPU, 메모리, I/O 장치, 파일 등…

프로세스 관리 활동

  • CPU에서 프로세스 스케줄링
  • 프로세스 생성 및 삭제
  • 프로세스 동기화 메커니즘
  • 프로세스간 통신 메커니즘
  • 교착 상태(Deadlock) 처리

 


메모리 관리

메모리 관리 활동

  • 현재 누군가에 의해 사용되고 있는 메모리의 부분을 추적하는 것
  • 메모리로 이동하거나 메모리에서 이동할 프로세스 및 데이터 결정
  • 필요에 따라 메모리 공간 할당할당 해제

가상 메모리 시스템

  • 다양한 형태의 데이터 스토리지(DRAM, 디스크)를 가상화하여 가상메모리라는 한 종류의 메모리만 있는 것처럼 프로그램을 설계

 


저장장치 관리

OS는 정보 저장장치에 대한 일관된 논리적 뷰를 제공

  • 파일
      논리 저장 단위
      일반적으로 디렉토리로 구성
  • 파일 시스템
      데이터 저장, 검색, 업데이트하고 장치의 사용 가능한 공간을 관리하는 수단

파일 시스템 작업

  • 파일 및 디렉터리 만들기삭제
  • 파일 및 디렉터리를 조작하는 기본 요소 지원
  • 보조 저장장치에 파일 매핑

대용량 저장장치 관리

  • 디스크데이터 저장에 사용
  • 컴퓨터 작동의 전체 속도
      디스크 하위 시스템 및 해당 알고리즘
      가장 느린 속도에 맞춰짐

디스크 저장 작업

  • 사용 가능한 공간 관리
  • 저장소 할당
  • 디스크 스케줄링

 


I/O 서브시스템

OS 목적

  • 사용자에게 하드웨어 장치의 특수성을 숨긴다.

I/O 서브시스템 구성

  • 일반 장치 드라이버 인터페이스
  • 특정 하드웨어 장치용 드라이버(Drivers)
  • I/O의 메모리 관리
      버퍼링
      캐싱
      스풀링

 


특수 목적 시스템

실시간(Real time) 시스템

  • 예) 미사일 제어 시스템, 의료 장비 시스템
  • 엄격한 응답 시간 요구사항
      "데드라인"
  • 실시간 시스템은 하드 또는 소프트
      미사일 제어 vs. mp3 플레이어

멀티미디어 시스템

  • 예) MP3 플레이어, DVD 플레이어, 비디오 컨퍼런스
  • 소프트 실시간 요구사항

모바일 시스템

  • 예) 휴대 전화
  • 낮은 H/W 기능
      느린 프로세서, 제한된 메모리, 작은 디스플레이 화면, 제한된 전력

 


가상 시스템(Virtual Machines)

가상 시스템

  • 단일 시스템여러 실행 환경으로 추상화
  • 각각의 개별 실행 환경이 자신의 컴퓨터를 사용하는 것처럼 착각
  • 하드웨어 및 커널을 모두 하드웨어인 것처럼 취급

가상 시스템의 기능

  • 시스템 리소스를 완벽하게 보호
  • 자원의 직접적인 공유 없음
  • 운영체제의 개발 편리
  • 다른 운영 체제에서 응용 프로그램 테스트 편리
      Linux, FreeBSD, Windows 10에서 애플리케이션 테스트

 


오픈 소스 운영 체제

  • binary closed-source가 아닌 소스 코드 형식으로 제공되는 운영 체제
  • 복제 방지DRM(Digital Rights Management; 디지털 저작권 관리)에 대응
  • GNU Public License(GPL) copyleft를 보유한 자유 소프트웨어 재단(Free Software Foundation; FSF)이 시작
  • GNU/리눅스 및 BSD UNIX(Mac OS X 코어 포함) 등


요약

  • 운영 체제
      1. 응용 프로그램과 컴퓨터 하드웨어 사이의 중개자 역할
      2. 컴퓨터 하드웨어 리소스를 관리
      3. 응용 프로그램을 위한 일부 서비스를 제공
  • 인터럽트 발생시
      1. CPU는 현재 수행 중인 작업을 중지
      2. ISR(Interrupt Service Routine) 호출
  • 캐싱
      동일한 데이터의 향후 요청에 대한 접근 속도 향상
      더 빠른 스토리지 미디어에 데이터 저장
  • 시분할 시스템
      CPU는 사용자가 각 프로그램과 상호 작용할 수 있도록 프로그램을 매우 자주 전환
  • 운영 체제 구성
      프로세스 관리, 메모리 관리, 파일 시스템, I/O 하위 시스템 등

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

[OS] 동기화 도구  (0) 2023.04.03
[OS] CPU 스케줄링  (0) 2023.03.27
[OS] 쓰레드와 프로세스  (0) 2023.03.20
[OS] 프로세스  (0) 2023.03.13
[OS] 서비스, 시스템 콜, 구조, 부팅 과정  (0) 2023.03.09

댓글