Computer/OS

운영체제, 프로세스, 인터럽트, 커널

Detacher 2012. 9. 22. 17:52

*운영체제(Operating System)

사용자가 컴퓨터 시스템을 손쉽게 사용하고 시스템 자원(Memory, I/O, 프로세서, Network..)을 효율적으로 관리할 수 있도록 하는 프로그램의 집합

-운영체제의 기능 : 입/출력장치 관리, 시스템 자원 관리, 에러 검출과 조치

-운영체제의 구성

①제어 프로그램 : 시스템 동작 감시, 프로그램 동작 제어, 하드웨어 구동

②처리 프로그램 : 제어 프로그램의 관리를 받으면서 실제의 문제를 실행하고 해결

 

*프로세스(Process)

-모든 프로그램은 실행될 때 하나 이상의 프로세스를 갖는다.

-하나의 프로세스 안에는 여러 명령어와 데이터, 카운터, CPU 레지스터, 그리고 루틴 인자, 복귀 주소, 저장된 변수 등의 데이터 스택이 포함.

-각 프로세스는 고유의 권한과 책임을 가지고 서로 통신하며, 시스템에서 동작중인 하나의 프로세스가 잘못된 연산을 수행하여 에러를 일으키더라도 다른 프로세스는 정상적으로 작동함.

-각각의 프로세스는 해당 명령을 수행하기 위해 여러 가지 시스템 자원을 사용하며 운영체제는 각각의 프로세스가 사용하는 시스템의 자원을 추적하고 제어한다.

-프로세스들은 항상 실행중인 것이 아니라 특정한 상태(실행, 대기, 중단, 좀비)중 한 상태에 있게 됨.

①실행 : 현재 실행되고 있는 상태.

②대기 : 운영체제가 자원을 할당해주기를 기다리는 상태.

③중단 : 인터럽트를 받아 실행이 중단된 경우.

④좀비 : 프로세스가 정지된 상태지만 그 정보가 완전히 삭제되지 않고 남아있는 경우.

 

*인터럽트(Interrupt)

-시스템의 장치나 프로그램이 운영체제가 하던 일을 멈추고 자신의 동작을 확인해주길 요청하는 것. 운영체제는 이러한 인터럽트를 확인하고, 다음에 어떤 동작을 할지 결정.

-역할에 따라 세가지(내부 인터럽트, 외부 인터럽트, 소프트웨어 인터럽트)

내부 인터럽트(트랩): 명령어나 데이터의 잘못된 사용으로 발생(산술오버플로, 0으로 나눔, 잘못된 연산코드, 메모리스택의 오버플로 등)

외부 인터럽트: 하드웨어의 외부적요인에인해 발생(입출력 장치, 타이밍장치, 전원공급장치 감시회로 등)

소프트웨어 인터럽트: 프로그래머가 원하는 시점에서 발생할수 있도록 임의로 설정가능한 인터럽트

 

*커널(Kernel)

-운영체제가 관리하는 영역

-운영체제의 중심에 위치하며 각 작업들을 제어(인터럽트 처리, 프로세스 관리, 메모리 관리, 파일 시스템 관리, 프로그래밍 인터페이스 제공)

-운영체제에서 기본적인 기능을 제공하는 핵심

-손상되면 안 되는 부분이기에 일반적으로 접근 가능한 메모리에 로드하지 않는다.

-커널의 구성요소

인터럽트 핸들러: 하드웨어에서 인터럽트 발생시 인터럽트 핸들러에서 처리

스케줄러: 여러 프로세스간 프로세서(CPU) 시간 분배(Time sharing)

메모리 매니저: 메인메모리 공간 관리

보호 메모리: 프로세스 상호간에 메모리의 간섭(할당한 공간이외의 접근)할수없도록 함

네트워크킹이나 프로세스간 통신(IPC)을 지원하는 시스템 서비스들

 

'Computer > OS' 카테고리의 다른 글

Process / Thread  (0) 2012.09.17