[운영체제와 정보기술의 원리] 2. 운영체제 개요

진예·2023년 12월 7일
0

Operating System

목록 보기
1/8
post-thumbnail

💡 운영체제 (Operating System, OS)

컴퓨터 하드웨어 윗단에 설치되어 사용자와 하드웨어를 연결하는 소프트웨어 계층

소프트웨어를 사용하기 위해서는 해당 프로그램이 메모리에 올라가야 한다. 운영체제도 소프트웨어의 한 종류이므로 컴퓨터를 전원을 켜면 자동으로 메모리에 올라가게 된다.

  • 좁은 의미의 운영체제 (커널, Kernel) : 메모리에 상주하는 운영체제의 핵심 부분 ➡️ 일반적으로 말하는 운영체제!
  • 넓은 의미의 운영체제 : 커널 + 각종 주변 시스템 유틸리티

📒 목적

사용자 ↔️ 프로그램형평성 있는 자원 분배 (CPU, 메모리, 입출력 장치, 프로세스, ...)

  • 사용자 관점 : 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공
  • 하드웨어 관점 : 컴퓨터 시스템의 한정된 자원을 효율적으로 관리

📒 분류

📝 동시 작업 가능 여부

  • 단일 작업 (Single Tasking) : 한 번에 하나의 작업만 처리 가능
  • 다중 작업 (Multi Tasking) : 한 번에 두 개 이상의 작업 처리 가능

CPU한 번에 하나의 작업만 처리하지만, 수 밀리초 이내의 아주 짧은 간격으로 여러 프로그램이 번갈아가면서 실행되므로 사용자는 프로그램들이 동시에 실행된다고 여기게 된다.

📝 사용자의 수

  • 단일 사용자 (Single User) : 한 번에 한 명의 사용자만 사용 가능
  • 다중 사용자 (Multi User) : 여러 사용자가 동시에 접속하여 사용 가능

📝 처리 방식

  • 일괄 처리 (Batch Processing) : 일정량의 작업을 모아 한꺼번에 처리
  • 시분할 (Time Sharing) : 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 처리
  • 실시간 (Realtime) : 작업이 정해진 시간 내에 반드시 처리되어야 함
    • 경성(Hard) 실시간 : 정해진 시간 내에 작업이 완료되지 않으면 위험한 경우 (미사일, 반도체, ...)
    • 연성(Soft) 실시간 : 위험한 결과를 초래하지는 않는 경우 (동영상, 음악, ...)

📒 자원 관리

📝 CPU 스케줄링

CPU (중앙 처리 장치) : 명령어의 해석, 연산, 비교 등의 처리를 제어하는 컴퓨터 시스템의 핵심적인 장치

  • 선입선출 (FIFO, FCFS) : 먼저 요청된 작업을 먼저 처리하는 방식 ➡️ 한 작업을 마칠 때까지 다른 작업은 대기해야 하는데, 앞선 작업의 처리 시간이 뒤 작업의 처리 시간에 비해 너무 긴 경우 비효율적일 수 있다.

  • 라운드 로빈 (Round Robin) : 한 번 CPU를 할당받았을 때 처리할 수 있는 시간을 제한하는 방식 ➡️ 선입선출 기법을 개선한 방법으로, 앞선 작업의 처리 시간이 길더라도 제한된 시간만큼만 작업을 처리하고 다시 제일 뒤로 가서 대기해야 한다.

  • 우선순위 : 작업 간 우선순위를 정하여 우선순위가 높은 작업 먼저 처리하는 방식

📝 메모리 관리

메모리 : CPU가 직접 접근할 수 있는 컴퓨터 내부의 기억장치

  • 고정분할 (Fixed Partition) : 메모리를 몇 개의 분할미리 나누어 관리 ➡️ 적재될 수 있는 메모리의 개수가 한정되어 있고, 분할의 크기보다 큰 프로그램은 적재 불가능하다. 또한, 할당된 메모리의 크기보다 프로그램의 크기가 작은 경우, 해당 메모리 안에 남는 영역(내부조각)이 생겨 메모리가 낭비될 수 있다.
  • 가변분할 (Variable Partition) : 매 시점 프로그램의 크기에 맞추어 메모리를 분할해서 사용 ➡️ 프로그램과 메모리의 크기에 따라 메모리가 비어있어도 크기가 맞지 않아 사용할 수 없는 영역(외부조각)이 생겨 메모리가 낭비될 수 있다.
  • 가상 메모리 (Virtual Memory) : 가상 메모리의 주소물리적 메모리 주소로 매핑시켜 주소를 변환하여 프로그램을 물리적 메모리에 올림 ➡️ 물리적 메모리보다 프로그램 실행 가능

📝 주변장치 및 입출력 장치

인터럽트 (Interrupt) : 각 장치에서 CPU의 서비스가 필요할 때 요청하기 위해 발생시키는 신호

CPU는 스케줄링에 따라 작업을 처리하다가, 인터럽트가 발생하면 하던 작업을 중단하고 인터럽트에 의한 요청을 처리한 후 다시 이전 작업으로 돌아간다. 이 때, 작업 중단 시 지금까지 한 작업에 대한 기억을 가지고 있어야 하므로 수행 중이던 작업의 상태를 저장해야 한다. 인터럽트는 각 장치의 CPU인 컨트롤러가 발생시킨다.

[출처] : 반효경 교수님 - 운영체제 강의, 운영체제와 정보기술의 원리

profile
백엔드 개발자👩🏻‍💻가 되고 싶다

0개의 댓글