운영체제 - 개요 1
운영체제란?
- 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층
- 컴퓨터 시스템의 필수적 요소
운영체제의 목적
- 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공
- 동시 사용자 각각은 독자적 컴퓨터 영역을 사용하는 것 같은 환상(illusion)을 제공한다.
- 하드웨어를 직접 다루는 복잡한 작업을 OS가 대신 처리한다.
- 컴퓨터 시스템의 자원을 효율적으로 관리
- CPU, Memory, I/O Device 등을 효율적으로 관리한다.
- 효율성(주어진 자원으로부터 최대 성능), 형평성(모든 사용자에 고른 기회 부여-과독점 방지 등)
- 사용자 및 운영체제 자신을 보호한다.
컴퓨터 시스템의 구조
- 크게 컴퓨터 내부 구조와 I/O Device의 연결로 이뤄진다.
운영체제의 기능
CPU 스케줄링
- 어떤 프로그램에게 CPU 사용 권한을 넘길 것인지 결정한다.
메모리 관리
- 한정된 메모리를 효율적으로 사용하기 위한 분배를 담당한다.
디스크 스케줄링
- 디스크에 들어온 요청을 처리한다.
- 무작정 요청이 들어온 순서대로 처리하는 것은 효율적이지 못하다.
인터럽트, 캐싱
- 빠른 CPU와 느린 I/O Device 간 속도 차이를 극복하기 위해 사용한다.
- 캐싱 : 반복 요청될 수 있는 데이터를 메모리 영역에 캐싱해둠으로써 디스크에서 반복적으로 탐색하는 비효율을 해결할 수 있다.
- 인터럽트 : CPU와 비교해 매우 느린 I/O Device에 어떤 일을 부여했을 때, CPU는 동작 결과를 기다리기 보다 자신의 일을 하고 있으면 좋을 것이다. 이를 위해 인터럽트를 사용한다. CPU는 제 할 일을 하고 있고, 동시에 I/O Device는 맡은 일을 수행하며, 그 일이 끝나면 인터럽트를 발생시켜 CPU에 일을 다 끝냈음을 알리게 된다.
프로세스의 상태
프로그램
- CPU는 요청이 들어온 프로그램의 동작을 일정 시간 수행하고, 큐에 있는 다음 프로그램을 일정 시간 수행하는 모습으로 동작한다.
- 이러한 작업은 디스크, 키보드 입력 등에서도 마찬가지다. 예를 들어 디스크 입출력 큐에서 작업을 순차적으로 실행해 작업이 끝난 프로그램이 생기면, 디스크 입출력 큐에서 꺼내 CPU 큐에 전달하게 된다. 이 과정에서 디스크는 CPU에 인터럽트를 걸어 상태를 알리게 된다.
Comments powered by Disqus.