본문 바로가기

컴퓨터 공학/운영체제

운영체제 개요

운영체제는 HW 를 사용할 수 있게 해주는 SW 다. 

 

우리 그러니까 사용자는 HW 를 직접 제어할 수 없다. 우리가 프로그램을 실행 시킬 때를 생각해보자.

 

직접 디스크에서 실행 시키려는 프로그램의 데이터를 찾아 CPU 와 메모리에 넘겨주지 않는다.

 

우리는 그저 모니터에 출력되는 OS 의 GUI 인 Window Explorer 를 사용해 아이콘을 클릭할 뿐이고 사용자의 요청을 처리해 디스크로 부터 해당 프로그램의 데이터를 가져와 메모리에 올리고 CPU 가 실행하게 해주는 즉 HW 의 자원을 관리해주고 사용자가 원하는 동작을 수행해주는 것은 OS 이다.

 

그럼 OS 와 컴퓨터는 어떠한 구조로 구성되어 있으며 어떤 원리로 사용자의 요청을 수행해주는 것일까? 

 

 

 

개인적으로 OS 는 위와 같은 구조로 표현할 수 있다고 본다.

 

사용자는 입출력 장치(I/O Device)를 통해 OS 에 신호를 입력하거나 요청한 작업의 수행 결과를 출력받는다.

 

예를 들어 최초 컴퓨터를 구동하면 모니터에 출력되는 바탕 화면에서 사용자가 마우스 혹은 키보드로 응용 프로그램을 실행시키면 HW 는 해당 입력 신호를 OS 로 전달한다.

 

그러면 OS 는 사용자가 요청한 응용 프로그램의 프로세스를 생성하게 되고 프로세스는 CPU 는 주어진 프로세스를 실행한다. 이때 CPU 는 실질적으로 한 번에 하나의 프로세스만 수행가능하기 때문에 OS 를 포함한 다수의 실행중인 프로그램들의 프로세스를 동시에 처리할 수 없다. 

 

그렇기 때문에 OS 는 프로세스들에게 보다 효율적으로 자원을 분배하기 위해 프로세스 스케쥴링을 통해 CPU 가 프로세스를 실행하게 되는데 이때 프로세스를 실행하는데 필요한 데이터를 가져오기 위해 디스크에서 데이터를 요청해 가져오게 된다. 

 

그렇게 전달된 데이터는 주기억장치인 메모리로 올라오게 되고 CPU 는 메모리에 올라온 데이터를 활용해 프로세스를 실행하게 되며 OS 에게 자신이 수행되는데 필요한 여러 시스템의 기능을 요청하게 된고 이를 시스템 콜이라고 한다. 

 

요청 받은 시스템의 기능은 OS 의 커널을 통해 동작하게 되며 결과적으로 프로세스가 자신의 기능을 수행하게 되고 사용자는 자신이 실행한 프로그램이 정상적으로 작동하는 것을 모니터 출력을 통해 볼 수 있다. 

 

이렇듯 OS 는 컴퓨터 HW 의 자원을 보다 효율적으로 프로그램의 프로세스들에게 분배해주며 CPU 가 작업을 수행하는 동안에 입력되는 I/O 장치에서의 입출력 인터럽트 관리, 디스크에 저장된 파일들의 관리 등 사용자가 정상적으로 컴퓨터를 사용할 수 있게 해준다. 

 

지금까지 간단하게 OS 의 구조 그리고 동작 방식을 살펴 보았는데 이번 기회를 통해 그동안 OS 에 대해 막연하게 전공 시험 위주의 암기로 알고 있었던 여러 요소들을 좀 더 자세히 알아보고 나의 것으로 만들어보는 시간을 가지려고 한다. 

'컴퓨터 공학 > 운영체제' 카테고리의 다른 글

프로세스 통신  (0) 2023.01.24
CPU 스케쥴링  (0) 2023.01.21
프로세스 관리  (0) 2023.01.19
프로세스(Process), 스레드(Thread)  (0) 2023.01.19
커널(Kernel), 시스템 콜(System Call)  (1) 2023.01.19