Operating System

[Operating System] 운영체제(OS) 기본

구루싸 2021. 3. 31. 13:05
반응형
SMALL

이번 학습 주제는 운영체제(OS:Operating System)입니다. 운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하고

사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 프로그램들의 모임을 말합니다. 그럼 이제 운영체제에 대해 하나씩 살펴보겠습니다.

 

운영체제의 목적

  • 처리 능력 증대
    • 시간당 처리 작업량(Throughput) 및 평균 처리시간 개선
  • 응답시간(Turn-around Time) 단축
    • 사용자가 시스템에 요청한 작업의 반환시간 단축
  • 사용가능도(Availability) 증대
    • 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
    • 고장과 오류가 발생해도 운영 영향 최소화
  • 신뢰도(Reliability) 향상
    • 실패 없이 주어진 기능을 수행할 수 있는 능력
    • 시스템이 주어진 문제를 정확하게 처리하는 정도
  • 자원 활용률 향상
    • 자원의 공유, 상호배제를 통해 자원을 효율적으로 활용

운영체제의 종류

  1. 일괄처리 시스템(Batch Processing System)
    • 초기의 컴퓨터 시스템에서 사용된 형태
    • 일정량 또는 일정 기간 동안 데이터를 모아서 처리하는 방식
    • 하드웨어의 효율적 이용 가능
    • 실행 시간이 길고 실시간 처리 미흡
  2. 다중 프로그래밍 시스템(Multi Programming System)
    • 여러 사용자 프로그램들이 동시에 주기억 장치에 공존하여 프로세서를 번갈아 가면서 이용하는 기법
    • CPU 가동률 극대화(유휴 시간 최소화)
    • 스케줄링에 의해 작업을 수행하므로 정교한 메모리 관리 및 스케줄링이 필요함
  3. 시분할 처리 시스템(Time Sharing / Multi-tasking System)
    • 다중 프로그래밍 + 대화형(다중 프로그래밍의 논리적 확장)
    • 각 사용자들에게 CPU에 대한 일정시간(time slice)을 할당하여 다수의 사용자가 터미널을 이용하여 동시에 시스템에 접근할 수 있음(사용자와 시스템 간의 Interactive한 서비스)
  4. 다중 처리 시스템(Multi Processing System)
    • 다수의 CPU로 다중 작업을 구현
    • 가용성 증대
  5. 실시간 처리 시스템(Real-time System)
    • 시스템 서비스 요청이 발생할 때마다 시간에 제약을 두어 즉시 처리
  6. 다중 모드 시스템(Multi-Mode Processing)
    • 일괄처리, 시분할, 다중처리, 실시간 처리를 한 시스템에서 모두 제공
  7. 분산처리 시스템(Distributed System)
    • 독립적 운영체제가 네트워크 등을 이용해 협업

운영체제의 주요 자원 관리

  1. 프로세스 관리
    • 프로세스 스케줄링 및 동기화 관리
    • 프로세스 생성과 제거, 시작과 정지, 메시지 전달 등의 기능을 수행
  2. 기억장치 관리
    • 프로세스에게 메모리 할당 및 회수
  3. 주변장치 관리
    • 입/출력 장치 스케줄링 및 점유 관리
  4. 파일 관리
    • 파일의 생성과 삭제, 변경, 유지 등을 관리

※ 프로세스(Process)

  • CPU에 의해 현재 실행중인 프로그램
  • PCB(Process Control Block)를 가진 프로그램
  • 프로세서가 할당되는 개체로서 디스패치(Dispatch)가 가능한 단위
  • 비동기적 행위를 일으키는 주체

※ PCB(Process Control Block)

  • 운영체제가 프로세스를 제어하기 위해 프로세스의 상태 정보를 저장하는 구조체
  • PCB에서 유지되는 정보
정보 내용
PID 프로세스 고유 번호
포인터 다음 실행될 프로세스의 포인터
상태 준비, 대기, 실행 등의 상태
Register save area 레지스터 관련 정보
Priority 스케줄링 및 프로세스의 우선순위
Account CPU 사용시간, 실제 사용된 시간
Memory Pointers 메모리 관리 정보
입출력 상태 정보  
할당된 자원 정보  

※ 스레드(Thread)

  • 프로세스의 구성을 크게 제어의 흐름 부분과 실행 환경 부분으로 나눌 때 프로세스의 실행 부분을 담당함
  • 실행의 기본 단위

프로세스 상태 전이

  • 상태가 전이될 때 문맥 교환(Context Switching)이 일어남

프로세스 상태 전이도(Process State Transition Diagram)

상태 내용
Admit 생성 → 준비 준비 큐가 비어있을 때 작업 스케줄러에 의해 동작
Dispatch 준비 → 실행 프로세스 스케줄러가 준비 큐에 있는 하나의 프로세스를 선택하여 CPU를 할당
Timer Run Out 실행 → 준비 CPU를 할당받은 프로세스가 CPU의 제한된 사용 시간을 모두 쓴 경우 발생
Blocked 실행 → 대기 CPU를 할당받은 프로세스가 I/O 및 다른 자원 등 CPU외의 서비스 작업을 원할 때
Wake up 대기 → 준비 대기 중이던 사건의 처리가 끝났을 경우
Release 실행 → 종료 프로세스의 정상/비정상 종료 시 발생

※ 문맥 교환(Context Switching)

  • CPU가 이전의 프로세스 상태를 PCB에 보관하고 다른 프로세스의 정보를 PCB에서 읽어 레지스터에 적재하는 과정을 의미함
  • 멀티프로그래밍(Multi-programming)환경에서 이루어지고 병행처리(Concurrent Processing)를 수행

이것으로 이번 학습을 마치겠습니다. 그럼 이만~.~

반응형
LIST