Kim Jinung

1. 운영체제 서론 본문

Computer Science/Operating System

1. 운영체제 서론

Kim Jinung 2022. 12. 29. 21:33

운영체제는 컴퓨터 하드웨어를 관리하는 소프트웨어다. 그렇다면 OS가 필요한 이유가 무엇일까?

하드웨어 리소스를 효율적으로 분배해줄 무언가가 필요하다.

 

특정 프로그램이 하드웨어까지 컨트롤 한다면 운영체제가 필요하지 않다. 하지만 해당 프로그램 하나만 하드웨어를 점유하게 된다. 다시 또 다른 프로그램도 하드웨어를 컨트롤하는 작업까지 담당해야한다. 그렇다면 하드웨어 리소스를 분배해주는 소프트웨어가 존재한다면 애플리케이션 단에서는 복잡성과 반복 작업을 제거할 수 있지 않을까? 초기 컴퓨터는 하나의 프로그램이 하드웨어를 점유해서 다른 프로그램이 동작할 수 없었다. 이후 시분할 시스템이 등장하는 등, 어떻게 하면 하드웨어를 더 효율적으로 사용할 수 있을까 고민하고 발전해온 흔적들을 살펴볼 수 있다. 그리고 이 과정에서 운영체제가 등장한다. 시간이 더 흘러서 하드웨어의 발전으로 멀티 코어 CPU가 등장한 이후에 운영체제에서는 다시금 이를 효율적으로 활용하기 위한 전략이 등장한다. ex) 멀티 스레드

 

즉 운영체제는 하드웨어 리소스를 효율적이면서 안정적으로 애플리케이션에 분배하고 회수하는 역할을 담당한다. 이러한 예로 운영체제에는 인터럽트가 존재한다. 인터럽트를 논하기 전에, 먼저 현대 컴퓨터에서 사용하고 있는 폰 노이만 구조는 CPU - Main memory - Storage로 구성된다. 실행하고자 하는 프로그램은 스토리지에 저장되어 있다. 이를 실행시키면 프로그램 파일을 메인 메모리에 올려야 한다. 그리고 CPU는 메모리에 올라온 값들을 연산하고 그 결과를 다시 메모리에 저장한다. 다만 위 순서에서 우측으로 갈수록 속도가 현저히 느려진다. 스토리지에서 프로그램을 읽어오는 속도보다 메모리의 처리 속도가 훨씬 빠르다. 이는 CPU와 메모리의 관계에서도 동일하므로 하드웨어가 효율적으로 쓰이지 못하는 상황이 발생한다. 즉 더 빠른 하드웨어가 더 느린 하드웨어의 작업이 끝나기 전까지 대기해야하는 비효율적인 상황이 발생한다. 운영체제는 이러한 상황을 피하기 위해서 속도가 더 느린 하위 하드웨어의 작업을 기다리지 않고 작업이 완료되었다는 요청이 들어오면 그때 CPU가 연산을 실행한다. 이 요청이 인터럽트다. 인터럽트 신호를 받기 전까지 CPU는 마냥 대기하는 것이 아니라 메인 메모리에 적재되어 있는 작업들을 순서대로 처리한다. 그리고 인터럽트 신호를 받으면 요청이 들어온 작업으로 다시 돌아가게 되는데, 메모리 스택에 저장되어 있는 마지막 주소를 참조하여 다시 다음 작업으로 복귀한다. 


 

'Computer Science > Operating System' 카테고리의 다른 글

6. 프로세스 동기화 그리고 데드락  (0) 2023.01.06
5. CPU 스케줄링  (0) 2023.01.05
4. 스레드와 병행성  (0) 2023.01.04
3. 프로세스  (0) 2022.12.30
2. 운영체제 구조  (0) 2022.12.29