운영체제가 하는 일

운영체제의 정의  
‘운영체제란 컴퓨터 사용자가 편리하게 컴퓨터 시스템을 사용할 수 있도록 하는 시스템 소프트웨어이다.’ 이것은 운영체제 관련 기술서적에 나온 것을 좀 더 줄여본 것입니다. 사실 운영체제를 한 문장으로 표현하기는 어렵습니다. 운영체제의 영역을 바라보는 학문적 견해도 다르고 실제로 대부분의 사람들은 윈도우즈와 같은 것을 운영체제로 알고 있다는 것이기도 합니다. 이와 같은 이유로 운영체제의 정의는 여러 가지가 있으나 첫 문장과 같이 정의하면 최대한 비슷하게나마 설명이 될 것으로 보입니다. 앞에서도 잠깐 말했듯이 교과서적인 운영체제의 정의에 시스템 소프트웨어는 포함시키지는 않습니다. 더욱이 웹브라우저와 같은 것은 응용 프로그램으로 보는 것이 맞을 겁니다. 

여기에 최신의 운영체제에는 한가지가 더 추가되어야 할 것입니다. ‘프로그램이 서로 컴퓨터 자원을 방해 없이 사용할 수 있도록 해주는 프로그램’ 초기 MS-DOS 운영체제를 사용하던 PC와 달리 지금은 여러 개의 프로그램이 동작하는 상태에서 컴퓨터를 사용하고 있습니다. 이러한 환경에서 프로그램이 다른 프로그램의 자원 사용을 방해하지 않도록 해주는 것도 중요한 기능이라고 볼 수 있습니다. 더욱이 보안이 중요한 요즘에 다른 프로그램의 데이터를 변형하는 상황이 발생하지 않도록 하는 것이 무척 중요해졌습니다. 

운영체제의 기능  
요즘의 운영체제 기능을 정리하면 아래와 같습니다.  

– 프로세스 관리 : 사용자 또는 프로그램에서 개별적인 스레드를 실행하도록 운영체제에 요청하고, 운영체제는 CPU에 이를 적절히 할당하여 실행되도록 합니다. CPU가 다수의 코어를 가지고 있으면, 각 코어에 효율적으로 분배를 하며, 한 개의 코어를 가지는 시스템이면 시분할로 각 스레드를 실행하도록 합니다. 하나의 코어로 다수의 스레드를 실행하도록 하는 방법론에는 여러 가지가 있습니다.  

– 메모리 관리 : 운영체제는 프로세스에 메모리를 할당하고 완료된 프로세스를 확인하여 할당된 메모리를 회수하는 역활을 합니다. 또한 서로 다른 프로세스가 메모리를 간섭하지 않도록 보호하는 기능도 합니다. 이 메모리 보호 기능은 CPU에 포함되어 있는 MMU(메모리 관리 장치)가 없으면 제 역할을 할 수 없어서 윈도우즈나 리눅스와 같은 운영체제가 실행되려면 MMU 기능이 있는 CPU이거나 별도의 MMU 장치를 가지고 있어야 합니다. (요즘의 CPU는 별도의 MMU 장치를 필요로 하는 경우는 없습니다.) 

– 파일 관리 : 디스크와 기타 대용량 저장 장치에 파일을 저장하고 읽는 역활을 한다. 모든 프로세스가 동시에 물리적인 디스크에 접근할 수 없으므로 이를 스케줄링해야 하고, 비정상적인 종료로 인한 파일 시스템 손상에 대비한 관리를 포함합니다. 이는 최신의 파일 시스템인 NTFS와 같은 파일 시스템에서 가능하고 예전의 FAT 파일 시스템에서는 파일 시스템 손상에 대한 대비책은 없었습니다. 

– 주변장치 관리 : 키보드, 마우스, 프린터, 그래픽 프로세서등의 액세스를 관리하고 USB 장치의 경우 PnP 동작 처리도 운영체제에서 관리합니다. 

– 네트워크 관리 : 네트워크는 다양한 프로토콜이 있습니다. 최근에는 TCP/IP를 많이 사용하지만, 기타 다양한 프로토콜에 대비한 기능도 보유하고 있습니다. 보통 네트워크 프로토콜 지원은 소프트웨어 스택을 기반으로 합니다.  

– 사용자 계정 관리 : 개인용 컴퓨터의 경우 사용자는 일반적으로 한 사람이기는 하지만 최근에는 가족이 공동으로 사용하도록 사용자 관리를 합니다. 단, 메인 프레임 컴퓨터와 같이 완전히 분리된 리소스를 제공하지는 않습니다. 수준이 어떻든 사용자 계정을 관리하여 일반 사용자가 컴퓨터 하드웨어를 직접 조작하는 일을 방지함으로써 컴퓨터 시스템을 더욱 안전하게 운영할 수 있습니다. 이 또한 상당 부분 CPU의 도움을 받아야 가능한 역할입니다.  

– 보안 : 사용자 계정 관리 부분과 일부 같은 역할을 합니다. 일반 사용자는 원칙적으로 시스템 자원을 조정하거나 프로세스를 장악할 수 없도록 하고, 슈퍼유저를 만들어서 시스템 자원을 조정, 프로세스 강제 종료등의 기능을 가지게 합니다. 여기에 추가하여 암호화를 통해 외부의 해킹을 막는 역할도 합니다.  

– 사용자 인터페이스 관리 : 일반적으로 이는 운영체제의 영역이 아니기는 하나 대부분의 일반 사용자의 경우 윈도우즈나 Mac OS를 사용하고 있는 상황에서 이 부분도 운영체제의 일부라고 생각할 수 있습니다. 컴퓨터 시스템을 디테일하게 조작할 때는 커맨드 라인이 편리하겠지만, 그런 것에 관심이 없는 대부분의 이용자는 이 사용자 인터페이스의 성능에 더 관심이 많을 수밖에 없습니다.

댓글(0)

Designed by JB FACTORY