본문 바로가기
컴퓨터&네트워크

운영체제의 정의

by 파란하랑 2024. 8. 11.

 

운영체제-예시
운영체제-예시

 

확장된 기계로서의 운영체제

 

간단하게 말하면, 운영체제란 커널 모드에서 실행하는 소프트웨어라고 볼 수 있다. 대부분의 컴퓨터들의 기계 언어 레벨에서의 구조 (명령 집합, 메모리 구성, I/O)는 아주 원시적이고, 특히 I/O에 대해서는, 프로그램하기 힘들게 되어있다. 최근에는 플로피 디스크를 별로 사용하지는 않지만, 이것의 동작이 현대의 하드 디스크에 비해 훨씬 간단하기 때문에 예로 사용해서 얘기해 보자.

 

특정 디스크는 16개의 명령들을 사용하며 장치 레지스터에 1~9개의 바이트를 적재하여 각 명령을 지정하게 된다. 이  명령들은 각각 데이터를 읽고, 쓰고, 디스크 암을 움직이고, 트랙을 포맷하는 기능을 제공한다. 그리고 컨트롤러와 드라이브를 초기화하고 읽고, 재설정하고 또 재조정하는 일도 수행한다.

 

가장 기본적인 명령은 read와 write이다. 각각은 13개의 인자를 필요로 하고, 이들은 9바이트로 패킹된다. 이들 인자들은 읽어야 할 디스크 블록의 주소, 트랙당 섹터 개수, 물리적 매체에서 사용되는 저장 모드, 섹터 간 간격, deleted-data-address-mark 표시로 할 일 등을 지정해 준다. 지금 설명하고 있는 얽히고 설킨 내용들이 무슨 말인지 잘 몰라도 걱정할 필요는 없다.

 

이것이 전부는 아니다. 플로피 디스크 프로그래머는 모터가 작동 중인지 아닌지 여부를 항상 인식하고 있어야 한다. 만약 모터가 오프 되어 있다면 데이터를 읽거나 쓰기 전에 모터를 켜야만 한다. 그런데 모터를 너무 오랫동안 켜둘 수는 없다. 그렇게 되면 플리피 디스크가 마모되어 고장 날 수도 있기 때문이다. 이쯤 설명하면 일반적인 프로그래머는 플로피 디스크에 대해 더 이상 접근하고 싶지 않다는 생각이 들 것으로 예상한다.

 

프로그래머가 원하는 것은 단순하면서도 고차원적인 추상화이다. 디스크라면, 추상화의 대표적인 예를 찾아보면 이름을 갖는 파일을 디스크에 저장하는 것으로 볼 수 있다. 각 파일은 접근을 위해 열릴 수 있고, 읽거나 쓰이며, 완료되면 닫힌다. 그 외에 상세한 기계적인 내용들은 나타낼 필요가 없는 것이다.

 

추상화는 복잡함을 관리하는 핵심 요소로 볼 수 있다. 좋은 추상화는 불가능해 보이는 작업 등을 두 개 이상의 관리 가능한 작업으로 바꿔준다. 우선 추상화를 정의하고 구현하는 작업이며, 그리고 이렇게 만들어 놓은 추상화로 주어진 문제를 해결해 나가는 작업이다.

 

컴퓨터 사용자라면 누구나 이해하는 대표적인 추상화가 파일이다. 디지털 사진, 이메일, 웹페이지 등과 같은 유용한 정보로 보면 된다. 사진, 이메일, 웹페이지를 다루는 것은 이전에 언급했던 디스크의 세부적인 내용을 다루는 것보다 훨씬 접근하기 쉽다. 운영체제의 역할은 좋은 추상화를 만들어 내고 이런 객체들을 구현하거나 관리할 수 있도록 해주는 것이다.

 

이 내용이 얼마나 중요한지는 다른 예를 들어보면서 알아볼 수도 있겠다. 맥킨토쉬를 보면 하드웨어는 정말 지저분하다. 프로세서, 메모리, 디스크, 다른 장치 등은 너무나도 복잡할 뿐 아니라 이를 이용하기 위해 소프트웨어를 만들어야 하는 프로그래머들에게는 어렵고 일관성 없는 인터페이스를 보여준다.

 

운영체제의 중요한 작업 중 하나가 하드웨어를 최대한 숨기고 대신에 프로그래머들이 일할 수 있는 깔끔하고 멋진 추상화를 제공해 주는 것이다. 여기서 주의해야 할 점 중 하나가 운영체제의 진짜 손님은 응용 프로그램이라는 점이다. 이들이 운영체제, 그리고 그의 추상화와 직접 관계를 맺는다고 볼 수 있다. 반면 일반 사용자들의 경우 그래픽 인터페이스와 같은 사용자 인터페이스에서 제공하는 추상화와 연관을 갖는다.

 

사용자 인터페이스에서 제공하는 추상화가 운영체제에서 제공하는 것과 비슷하기는 하나 항상 동일하지는 않다. 일반적인 윈도우 데스크탑과 라인 기반 명령어 창을 비교해서 생각해 보자. 둘 다 윈도우 운영체제에서 실행하고 있고 윈도우에서 제공하는 추상화를 활용하고 있지만, 이 둘은 전혀 다른 사용자 인터페이스를 제공하고 있다.

 

마찬가지로 리눅스 사용자는 X 윈도우 시스템 상에서 작업을 하고 있는 사용자와는 전혀 다른 인터페이스를 보게 되지만, 두 경우 모두 같은 운영체제 추상화를 바탕으로 하고 있다.

 

https://having-information.tistory.com/3

'컴퓨터&네트워크' 카테고리의 다른 글

컴퓨터 하드웨어  (0) 2024.08.12
다양한 정보통신망  (0) 2024.08.12
프로그래밍 언어  (0) 2024.08.11
운영 체제의 진화 과정-2  (0) 2024.08.11
운영체제의 진화 과정-1  (0) 2024.08.11