3. 운영체제 개요(2) - 구조와 기능

2025. 3. 27. 19:25
반응형

운영체제는 한마디로 시스템들을 관리하는 시스템을 모두 모아서 이야기하는 것으로 컴퓨터의 구성요소를 다루는데에는 필수적으로 알아야하는 것이 아니지만 알게 된다면 컴퓨터의 시스템에 대해서 더 자세하게 알 수 있다. 

 

이번 포스터에서는 운영체제가 어떻게 구조되어있고 운영체제가 어떤 기능을 가지고 있는지 자세하게 알아보도록 하겠다.

 

1. 운영체제의 구조

 

컴퓨터는 여러 계층으로 구성되어 있으며, 그중 운영체제(OS)는 커널(Kernel), 시스템 호출(System Calls), 유틸리티(Utilities)로 이루어져 있다고 볼 수 있다.

 

가장 먼저, 커널(Kernel)은 운영체제의 핵심 요소로, 시스템에서 가장 중요한 역할을 수행한다. 프로세서 관리, 메모리 관리 등 시스템 자원을 효율적으로 운영하며, 가장 빈번하게 사용되는 기능들을 담당한다.

 

한편, 유틸리티(Utilities)는 우리가 흔히 "운영체제"라고 부르는 부분으로, 운영체제의 필수 구성 요소 중 하나다. 유틸리티는 시스템 유틸리티(System Utilities) 사용자 유틸리티(User Utilities)로 나뉘며, 각각 시스템 유지보수 및 사용자 편의를 위한 기능을 제공한다.

 

그 중 커널의 핵심 기능 중 하나는 자원(Resource) 관리로, 하드웨어와 소프트웨어를 모두 제어하며 시스템의 안정적인 운영을 보장하는데 운영체제는 커널에 따라 다음과 같은 구조를 띌 수 있다. 

 

1.1. 단일 구조

 

운영체제의 구조라고 하면 가장 먼저 가장 간단한 "단일 구조"라는 것이 있다. 이것은 초기에 만들어진 구조로 시스템이 단순하고 매우 빠르다는 장점이 있다. 또한 이렇게 되어있다보니 관리도 용이하다는 단점이 있다. 

 

하지만 초기에 만들어진 것에 비해 현제도 사용되는 방법인데 단점은 이렇게 만들어지다보니 오류같은 것이 발생하면 위에는 그렇게 안보이지만 기능들이 얼켜있는데 이러한 점에서 수정이 복잡하고 확장이 어렵다는 단점이 있다. 

 

1.2. 계층구조

 

위 내용과는 다르게 계층적으로 만든 구조도 존재한다. 이 방법은 현제 우리가 일상적으로 사용하고 있는 운영체제로 가장 장점은 계층간에 검증 및 수정이 용이하다는 점이다. 위에서 잘못되면 위에서 처리하고 이러한 형식을 띈다는 점이다. 이것은 오류를 많이 줄여주고 각자 할 일이 정해져있기에 확장성이 높다는 장점이 있다. 

 

단점으로는 아까전과는 반대로 "여러개층"을 지나야한다는 단점이 있다.

 

1.3. 마이크로 커널 구조

 

마이크로커널 구조는 커널의 역할을 최소화하고 필수적인 기능만 커널에 포함시키는 방식이다.

 

다른 기능들은 유저 공간에서 독립적으로 실행되며 사용자가 필요에 따라 설정하고 관리해야 한다. 이 방식은 확장성과 이식성에서 강점을 가지지만, 성능 면에서는 단점이 있다.

 

그 이유는 여러 기능들이 유저 공간에서 실행되며 서로 프로세스 간 통신(IPC)을 통해 상호작용해야 하기 때문이다. 이로 인해 시스템 호출 오버헤드와 컨텍스트 스위칭이 증가해 성능이 저하될 수 있다. 반면 단일 구조의 운영체제는 커널 내에서 모든 기능이 통합되어 처리되기 때문에 성능이 더 빠르고 효율적이다.

 

2. 운영체제의 기능

운영체제의 핵심 기능은 바로 자원 관리다. 이는 프로세스(Process), 프로세서(Processor), 메모리(Memory), 파일(File), 입출력(I/O), 보조 기억 장치 및 주변 장치 등 시스템 자원들을 효율적으로 관리하는 것이다. 이에 대해 더욱 자세하게 알아보도록 하겠다. 

 

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

프로세스란 실행 중인 프로그램을 의미하는데 운영체제는 이를 생성, 삭제, 상태 관리, 자원 할당 등 다양한 측면에서 관리한다. 또한 프로세스 간의 통신 및 동기화를 담당하고, 교착상태(Deadlock) 문제를 해결하기 위한 메커니즘도 제공한다.

 

2.2. 프로세서 관리(Processor Management)

프로세서는 프로그램을 실행하는 핵심 자원으로 보통 CPU를 지칭한다. 운영체제는 이 프로세서 자원을 효율적으로 관리하며 프로세서의 스케줄링과 할당을 담당하여 여러 프로그램이 동시에 실행될 수 있도록 한다. 이를 통해 시스템 자원을 최적화하고 성능을 극대화할 수 있다.

 

또한 프로세스 스케쥴링(간단하게 말해서 시스템 내의 프로세스 처리 순서 결정), 프로세서 할당 관리(프로세스들에 대한 프로세서 할당에 대한 이야기)도 다룬다.

 

2.3. 메모리 관리(Memory Management)

운영체제는 메모리 관리의 중요한 역할도 맡고 있다. 즉, 주기억장치(RAM)를 관리하는 역활을 맡고 있다. 이를 통해 멀티유저(Multi-user) 및 멀티태스킹(Multi-tasking) 시스템에서 여러 프로세스가 효율적으로 메모리를 공유하고 시스템의 여유 공간을 최적화할 수 있도록 지원한다. 메모리 할당 방식에는 전체 할당과 부분 할당이 있다. 전체 할당은 상대적으로 구현이 간단한 반면, 부분 할당은 더 복잡하고 정교한 관리가 필요하다.

 

2.4. 파일 관리(File Management)

운영체제는 파일도 관리한다. 자세하게는 파일 및 디렉토리 생성/삭제, 파일 접근 및 조작, 파일을 물리적 저장 공간으로 사살, 백업 등의 역활도 운영체제가 관리하고 있다. 

 

2.5. I/O 관리(I/O Management)

I/O는 입출력을 의미하며 운영체제는 이 입출력 작업도 관리한다. I/O 장치와의 통신은 반드시 운영체제를 거쳐야 하므로, 운영체제는 입출력 장치와의 데이터 전송을 효율적으로 처리하고 각 장치에 대한 접근을 조정하며 입출력 요청을 관리하는 중요한 역할을 한다.

 

그 밖에도 Disk, Networking, Security and Protection system, Command interpreter system, System call interface와 같은 운영체제는 사실 상 컴퓨터의 모든 시스템들을 관리한다. 

 

이제 다음 포스터부터는 운영체제가 다루는 것에 대해 하나하나 자세하게 알아보도록 하겠다.

반응형

BELATED ARTICLES

more