운영체제/개념

운영체제 구조

chjs93 2020. 6. 5. 01:08

운영체제는 다양한 발전 방향을 따라 구성이 되었기 때문에 운영체제마다 내부 구조는 다양하다

그럼에도 운영체제 사이에는 많은 공통점이 있다 그중 하나가 '다중 프로그래밍' 이다.

 

다중 프로그래밍

한명의 사용자가 여러 프로그램을 동시에 실행시키게 하는 기술이다.

 

해야할 작업들(프로그램)은 디스크 작업 풀에 유지 되고 있다가 스케줄링에 따라 메모리에 부분적으로 작업이 등록이 된다 이때 작업들을 프로세스라고 한다 메모리에 등록된 작업들 중 cpu는 하나의 작업을 실행하는 방법으로 다중 프로그램을 구현한다. 

 

굳이 따지자면 cpu에서 작업을 1개씩 처리하는데 다중 프로그램이라고 말하는 이유는 무엇일까?

우리가 익숙한 단어인 멀티태스킹(multi-tasking) 은 다중 프로그램의 논리적 확장이라고 말할 수 있는데 사용자가 시스템과 통신을 키보드, 마우스, 터치스크린 같은 입력장치를 사용하여 대화를 할 때 시스템은 굉장히 여유로운 시간을 가질 수 있다. (내가 1초에 키보드를 10번 눌러봤자 시스템입장에서는 엄청 느리다는 의미)

따라서 시스템은 스케줄링을 통해 메모리상에 등록되어 있는 작업들을 cpu 스케줄링과 스와핑기법을 통해서 빠르게 작업을 진행하면 사용자는 멀티태스킹을 경험할 수 있다.

 

사용자가 멀티테스킹을 경험하기 위해서 빠른 응답시간을 보장해야하는데 가상 메모리를 사용하는 방식이 일반적이다. (추후 포스팅)

추가로 파일시스템도 반드시 제공해야하며 디스크 관리 기법, 보안이나 자원보호 기법, 작업 동기화 및 통신 기법, 교착상태 해소 기법 등을 제공해야한다.