6월 26일 - 운영체제

Yullgiii·2024년 6월 27일
0

운영체제란?

운영체제(Operating System 이하 OS)란 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어를 말한다. 컴퓨터를 구성하는 요소 중 운영체제의 위치는 아래와 같다.

운영체제의 역할

OS 자체도 하나의 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라간다. 그러나 OS처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 발생한다. 따라서 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고 그렇지 않은 부분은 필요할 때 메모리로 올려서 사용하게 된다.

메모리에 상주하는 운영체제의 부분을 커널(Kernel)이라 한다. 커널은 운영체제 코드 중에서 핵심적인 부분이다.

운영체제의 기능

운영체제는 컴퓨터 하드웨어와 사용자 사이에 존재하며, 사용자가 직접 운영하기 힘든 하드웨어를 관리하고 사용자에게 편리한 인터페이스를 제공하는 역할을 한다. Windows, Mac OS 등이 대표적인 예시다.

운영체제의 주요 기능은 다음과 같다:

  • 컴퓨터 시스템 내의 자원을 효율적으로 관리
  • 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공
  • 사용자 및 프로그램들 간 자원의 형평성 있는 분배
  • 사용자와 운영 체제 자신을 보호

운영체제의 분류

운영체제는 여러 기준에 따라 분류할 수 있다.

동시 작업 지원 여부에 따른 분류

  • 단일 작업용 운영체제: 한 번에 하나의 프로그램만 수행. 예) DOS
  • 다중 작업용 운영체제: 여러 프로그램이 동시에 수행 가능. 예) Windows, Unix

사용자 지원 여부에 따른 분류

  • 단일 사용자용 운영체제: 한 번에 한 명의 사용자만 사용 가능.
  • 다중 사용자용 운영체제: 여러 사용자가 동시에 접속 가능. 예) 이메일 서버, 웹 서버

작업 처리 방식에 따른 분류

  • 일괄 처리: 일정량의 작업을 모아서 한꺼번에 처리. 응답 시간이 길다.
  • 시분할: 여러 작업을 일정 시간 단위로 나누어 처리. 짧은 응답 시간.
  • 실시간 처리: 정해진 시간 안에 작업을 반드시 완료. 예) 로켓 제어 시스템

운영체제의 자원 관리 기능

운영체제의 가장 핵심적인 기능은 자원을 효율적으로 관리하는 것이다. 자원에는 하드웨어 자원(CPU, 메모리, 입출력 장치 등)과 소프트웨어 자원이 포함된다.

CPU 관리

CPU는 하나지만 동시에 여러 프로세스를 실행한다. 매 시점 어떤 프로세스에게 CPU를 할당할지 결정하는 작업을 CPU 스케줄링이라 한다.

스케줄링 기법

  • 선입 선출(FCFS): 먼저 도착한 프로세스를 먼저 처리. 장시간 CPU를 사용하는 프로세스가 먼저 도착하면 비효율적.
  • 라운드 로빈: 일정 시간 단위로 프로세스에 CPU를 할당. 긴 작업도 정해진 시간 후 CPU를 내어놓아 짧은 작업이 오래 기다리지 않도록 함.
  • 우선 순위 스케줄링: 우선 순위가 높은 프로세스에 CPU를 먼저 할당. 오래 기다리는 프로세스의 우선순위를 높여줌.

메모리 관리

메모리는 CPU가 직접 접근할 수 있는 컴퓨터 내부의 기억 장치이다. 메모리에 대한 효율적인 관리 메커니즘이 필요하다.

메모리 관리 기법

  • 고정 분할 방식: 메모리를 몇 개의 고정된 분할로 나눔. 내부 조각 발생 가능.
  • 가변 분할 방식: 프로그램의 크기에 맞게 메모리를 동적으로 분할. 외부 조각 발생 가능.
  • 가상 메모리 방식: 물리적 메모리보다 큰 프로그램 실행 지원. 필요한 부분만 메모리에 올림. 페이징 기법 사용.

입출력 관리

입출력 장치는 인터럽트 매커니즘을 통해 관리한다. 인터럽트는 CPU의 서비스가 필요한 경우 발생하는 신호이다. 인터럽트 처리 루틴을 통해 인터럽트를 처리한다.

예제

1. CPU가 프로그램 A를 실행 중이다.
2. I/O 장치에서 인터럽트가 발생하여 CPU에 신호를 보낸다.
3. CPU는 프로그램 A의 현재 상태를 PCB에 저장한다.
4. CPU는 인터럽트 처리 루틴으로 이동하여 I/O 인터럽트를 처리한다.
5. 인터럽트 처리가 완료되면, CPU는 PCB에 저장된 프로그램 A의 상태를 복원한다.
6. CPU는 프로그램 A의 이전 명령 위치부터 실행을 재개한다.

So...

운영체제는 컴퓨터 시스템의 자원을 효율적으로 관리하고 사용자에게 편리한 인터페이스를 제공하는 중요한 소프트웨어이다. 다양한 자원 관리 기법을 통해 시스템 성능을 최적화하고, 여러 사용자와 작업을 지원하여 컴퓨터의 활용도를 높인다. 운영체제의 작동 원리와 기능을 이해하면, 컴퓨터 시스템의 효율적인 사용과 관리에 도움이 된다.

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글