운영체제

운영체제 Chapter2 2-2

PlusUltraCode 2024. 6. 23. 18:09

운영체제(OS)의 주요 역할과 성과

운영체제가 하는 주된 역할은 모든 OS가 기본적으로 가지고 있는 기능들이다. 각 OS는 방법은 다르지만 기본적으로 다음과 같은 역할을 수행한다.

1. 프로세스 관리 (Process Management)

운영체제의 가장 중요한 역할 중 하나는 실행 중인 프로그램, 즉 프로세스를 관리하는 것이다. 프로그램이 실행되면 메모리에 올라가서 실행되며, OS는 이를 프로세스라는 형태로 관리한다. OS는 우리의 프로그램을 정확하고 효율적으로 실행시키는 것이 핵심이다.

2. 메모리 관리 (Memory Management)

모든 프로그램을 동시에 실행할 만큼 메모리는 크지 않다. 따라서 메모리를 여러 개로 나누어 여러 프로그램을 동시에 실행해야 한다. 가상 메모리(Virtual Memory) 방식은 프로그램의 일부만 메모리에 넣고, 필요할 때마다 다른 부분을 메모리에 가져와 실행한다.

3. 정보 보호와 보안 (Information Protection and Security)

프로그램은 자신에게 할당된 메모리 영역과 자원만 접근해야 한다. 다른 프로그램의 메모리 영역이나 자원을 마음대로 사용할 수 없도록 보호해야 한다. 시스템 사용이 허가된 사용자 외에는 접근할 수 없도록 해야 한다.

4. 스케줄링과 자원 관리 (Scheduling and Resource Management)

여러 프로그램을 동시에 실행할 때, 어떤 순서로 프로그램을 실행하고, 각각의 프로그램을 얼마나 실행할지를 정해야 한다. 이를 관리하는 것이 스케줄링이다. CPU가 하나이든 여러 개이든 효율적으로 자원을 관리해야 한다.

현대 운영체제의 발전

1. 마이크로커널 아키텍처 (Microkernel Architecture)

옛날에는 OS가 작아서 전체가 메모리에 들어갔지만, 요즘은 OS가 커서 전체를 메모리에 넣을 수 없다. 항상 메모리에 있어야 하는 부분을 최소화하여 마이크로커널(Microkernel)이라 부르며, 나머지 부분은 OS 작업별로 나누어 여러 개의 프로세스로 구현한다. 이는 업데이트와 디버깅이 쉽지만, 실행 시간이 길어지는 단점이 있다.

2. 멀티스레딩 (Multithreading)

프로그램의 함수들이 동시에 실행될 수 있는 경우를 말한다. 순차적으로 실행되는 것이 아니라 동시에 실행되어 실행 속도를 증가시킨다.

3. 대칭 다중처리 (Symmetric Multiprocessing, SMP)

여러 개의 CPU를 사용하는 시스템이다. 여러 CPU에서 동시에 OS를 실행할 수 있으며, 이는 병행 제어(Concurrency Control)가 필요하다. 동시에 접근 가능한 자원에 대해 순차적으로 접근하도록 제어한다.

4. 분산 운영체제 (Distributed Operating System)

여러 개의 독립적인 컴퓨터를 네트워크로 연결하여 하나의 컴퓨터처럼 사용하는 시스템이다. 각각의 컴퓨터가 독립적인 CPU와 OS를 가지고 있으며, 하나의 컴퓨터처럼 동작하도록 한다.

5. 객체 지향 설계 (Object-Oriented Design)

모듈화된 프로그램을 사용하여 업데이트가 용이하다. 이는 시스템을 모듈화하여 유지보수와 확장이 쉽게 한다.

주요 운영체제 아키텍처

  • Windows 아키텍처: 효율성을 중시하며 마이크로커널을 사용한다.
  • UNIX 아키텍처: 공정성을 중시하며, 전통적으로 마이크로커널을 사용하지 않는다. 이는 속도가 매우 빠르다.
  • Modern UNIX 아키텍처: 현대적 UNIX는 마이크로커널을 사용한다.
  • Linux 커널 구성 요소: 마이크로커널을 사용하지 않으며, 전통적인 UNIX 방식으로 속도가 빠르다.
  • Android 시스템 아키텍처: 마이크로커널을 사용한다.

이와 같이, OS는 여러 가지 중요한 역할을 하며, 현대 운영체제는 이러한 역할을 더욱 효율적으로 수행하기 위해 다양한 아키텍처와 기법을 도입하고 있다.