[OS] 1. Introduction to Operating Systems

nang_zz·2022년 9월 23일
0

운영체제

목록 보기
1/3
post-thumbnail

반효경 교수님의 운영체제 강의를 듣고 정리한 게시글입니다.


운영체제란 무엇인가?

컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층

  • 좁은 의미: 커널(kernel). 즉, 운영체제의 핵심 부분으로 메모리에 상주하는 부분
  • 넓은 의미: 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념



운영체제의 목적

  1. 컴퓨터 시스템의 자원을 효율적으로 관리
  • 프로세서, 기억장치, 입출력 장치 등 효율적 관리
  • 사용자 및 운영체제 자신의 보호
  • 프로세스, 파일, 메시지 등 관리
  1. 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공
  • 동시 사용자/프로그램들이 독자적 컴퓨터에서 수행되는 것처럼 환경을 제공
  • 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행


운영체제의 분류

동시 작업 가능 여부에 따른 분류

단일 작업(single tasking)

한 번에 하나의 작업만 처리
한 명령의 수행이 끝내기 전에 다른 명령을 수행시킬 수 없다.
ex) MS-DOS

다중 작업(multi tasking)

동시에 두 개 이상의 작업 처리
한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있다.
ex) UNIX, MS Windows

사용자의 수에 따른 분류

단일 사용자(single user)

한 명의 사용자만 시스템 사용
ex) MS-DOS

다중 사용자(multi user)

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

처리 방식에 따른 분류

일괄 처리(batch processing)

데이터 처리에서 즉시성을 필요로 하지 않을 경우, 일정량 또는 일정 기간 데이터를 모아서 한꺼번에 처리

시분할(time sharing)

여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할(time slicing)하여 사용

실시간(Realtime)

정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야하는 실시간 시스템을 위한 OS로 데드라인(Deadline) 존재

  • 경성(Hard) 실시간 시스템: 미사일, 원자로 제어 등
  • 연성(Soft) 실시간 시스템: 동영상 재생 등

💡 몇 가지 용어 정리

task(태스크)

작업의 최소 단위로 프로세스(process), 스레드(thread) 모두 작업의 단위가 될 수 있다.

program(프로그램)

어떤 작업을 위해 실행할 수 있는 명령어의 집합인 파일

process(프로세스)

실행 중인 프로그램, 메모리에 적재되어 운영체제의 제어를 받는 상태
각 프로세스는 각각의 독립된 메모리 영역

thread(스레드)

프로세스의 실행단위, 프로세스는 하나 이상의 스레드를 가지고있다.


Multitasking(다중작업)

운영체제의 스케쥴링에 의해 task를 번갈아가며 수행하여 여러 작업(task)를 동시에 수행하는 것처럼 느끼게 하는 것

Multiprogramming(다중프로그래밍)

여러 프로그램이 메모리에 올라가 있음을 강조
➡ for CPU 이용률 극대화

Time sharing(시분할)

CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조
➡ for 응답 시간 최소화

Multiprocessing(다중처리)

하나의 프로그램을 여러개의 프로세스로 구성하여 multiprocessor를 이용하여 병렬적으로 작업을 수행하는 것

  • 프로세스 간 공유해야 할 데이터가 생기면 프로세스 사이의 통신 구축(IPC) 필요
  • 장점: 안전성(메모리 침범 문제를 OS 차원에서 해결)
  • 단점: 각각 독립된 메모리 영역을 갖고 있어, 작업량 많을수록 오버헤드 발생. Context Switching으로 인한 성능 저하.

Multithreading

하나의 프로세스를 여러개의 스레드로 처리하여 프로세스를 효율적으로 실행하는 것

  • 스레드는 stack만 따로 할당받고 나머지 영역은 서로 공유
  • 장점: 공유 메모리만큼 시간, 자원 손실 감소.
  • 단점: 안전성. 하나의 스레드가 데이터 공간을 망가뜨리면, 모든 스레드가 작동 불능.

Multiprocessor

하나의 컴퓨터에 CPU(processor)가 여러 개 존재하고 있음을 의미



운영체제의 구조

  • CPU 스케줄링
  • 메모리 관리
  • 파일 관리
  • 입출력 관리
  • 프로세스 관리


[보충 참고자료]

BillyTheKid님의 블로그 Murphy
Gyoogle님의 👶🏻신입 개발자 전공 지식&기술 면접 백과사전

profile
블로그 이전했어요. fine-dev.site

0개의 댓글