초보 개발자의 성장기

컴퓨터 구조 파헤치기 ... (운영 체제의 개념, 역할, 목적) 본문

BackEnd 지식

컴퓨터 구조 파헤치기 ... (운영 체제의 개념, 역할, 목적)

개발자 김케빈 2023. 9. 21. 14:18
운영체제란?

🖥️ 운영체제의 정의

운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며 사용자가 편리하게 사용할 수 있도록

환경을 제공해주는 프로그램의 모임 이라고 정의할 수 있습니다.

 

📟 운영체제의 역할

운영체제는 3가지 핵심적인 역할을 수행하고 있습니다.

  • 컴퓨터 시스템 자원 효율적으로 관리
    • 하드웨어 관리 : CPU, 메모리, 주변 장치 및 입출력 장치 관리
  • 컴퓨터 자원 보호 : 사용자로부터 자원을 보호
  • 인터페이스 제공 : 사용자가 편리하게 컴퓨터 자원을 사용할 수 있도록 인터페이스 제공

🗝️ 운영체제의 목적

운영체제를 사용하는 목적은 곧 운영체제를 평가하는 척도가 됩니다.

  • 처리능력(Throughput) : 시간 당 처리 작업량 및 처리 시간 개선
  • 반환 시간(Turn Around Time) : 사용자가 시스템에 요청한 작업의 반환 시간 단축
  • 사용 가능도(Availiability) : 시스템을 즉시 사용 가능, 오류가 발생해도 운영 영향 최소화
  • 신뢰도(Reliability) : 실패 없이 주어진 기능을 수행, 시스템이 주어진 문제를 정확하게 처리

✏️ 운영체제의 구조

운영체제에서 가장 중심이 되는 기능은 커널이 수행합니다.

커널은 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하고, 컴퓨터 자원들을 관리하는 역할을 합니다.

그래서 커널은 인터페이스로써 응용 프로그램 수행에 필요한 여러가지 서비스를 제공하고,
여러가지 하드웨어(CPU, 메모리) 등의 리소스를 관리하는 역할을 합니다.

컴퓨터는 운영체제의 모든 기능을 메모리에 올릴 수 없어
핵심 기능을 가진 커널을 시스템이 구동될 때 메모리에 상주시킵니다.

즉, 우리가 컴퓨터가 켠 시점부터 끌 시점까지 커널은 메모리에 계속 남아 있습니다.

 

📚 운영체제의 시스템

운영체제는 다양한 기법에 의해 운영됩니다.

먼저, 시분할 시스템에 대해 알아보겠습니다.

시분할 시스템은 하나의 컴퓨터 시스템을 복수의 사용자가 사용하는 형태로 

CPU 스케줄링 (여러가지 작업 중 우선순위를 정해서 작업을 걸정)

다중 프로그래밍 (CPU의 작업과 입출력 작업을 병행하는 방식)을 이용해 각 사용자들에게 

컴퓨터 자원을 시간적으로 분할하여 사용할 수 있게 도와줍니다.

CPU 스케줄링과 다중 프로그래밍은 중요한 개념이라 조금 더 자세히 설명하겠습니다.

CPU 스케줄링은 프로세스들에게 CPU를 할당하기 위한 정책을 계획하는 것으로 대표적으로 2가지 방법으로 사용됩니다.

  • Preemptive (선점형) : 프로세스가 CPU를 점유하고 있는 동안 다른 프로세스가 해당 CPU를 점유할 수 있음
  • Non-Preemptive (비선점형) : 프로세스가 먼저 CPU를 점유하고 있으면
    다른 프로세스는 해당 프로세스가 종료되기 전까지 CPU를 점유할 수 없음 

CPU 스케줄링은 FIFO, SJF, RR 등 여러가지 알고리즘으로 구동되는데 알고리즘에 대한 설명은 너무 길어져 넘어가겠습니다!

 

다중 프로그래밍은 여러 개의 프로그램을 메모리에 적재하여 번갈아 가면서 실행하는 방식입니다.

프로그램 하나를 실행하다가 대기 상태가 되면 다른 프로그램을 실행합니다.

즉, CPU를 필요로 하는 프로세스를 계속 교체해줌으로써 (CPU는 항상 하나의 작업을 가지고 있음)
CPU의 이용률을 높입니다.

다중 프로그래밍은  CPU 스케줄링을 이용해 어떤 프로세스를 작업해야할지 선택합니다.

 

따라서, 시분할 시스템을 이용하는 운영체제는 CPU의 이용을 한 사용자에서 다음 사용자로 빠르게 전환되도록 합니다.

각각의 사용자가 컴퓨터 시스템 이용에 이써서 연속성을 유지함과 동시에,
다수의 사용자가 하나의 컴퓨터 시스템을 공유할 수 있습니다.

Comments