개요
운영체제
▶정의 :컴퓨터 하드웨어와 컴퓨터 사용자간의 매개체 역할을 하는 시스템 소픝웨어로서 사용자 프로그램을 수행할 수 있는 환경을 제공
▶목적: 컴퓨터 시스템을 편리하게 이용하고 하드웨어를 효율적으로 관리하기 위함
운영체제의 유형
일괄 처리 시스템(batch processing system)
여러 가지 형태의 업무들을 모아서 일괄적으로 차례대로 처리하는 방식
▶초기 컴퓨터 시스템은 거의 일괄처리 시스템
▶정보처리 시스템의 효과적 운용
▶관리가 용이하고, 이로 인해 비용을 절감
▶응답 시간이 길어져 생산성이 떨어지는 단점
▶적용업무 : 경리 업무, 회계 업무, 급여 계산, 재무 관리,생산 관리, 재고 관리, 판매 관리, 자금 관리
전기료, 수도료, 전화 사용료, 과학 기술 계산 등
다중 프로그래밍 시스템(Mulit-programing system)
CPU의 효율을 극대화하기 위하여 제안된 처리 기법, CPU의 이용율 향상을 위한 목적
▶메모리에 여러 개의 프로그램을 동시에 적재
▶메모리를 관리하는 기법 요구(프로그램 스케줄링)
▶컴퓨터 성능을 향상
실시간 처리 시스템(Real-time processing system)
데이터의 발생 즉시 처리, 응답하는 처리방식
▶예) 항공기, 열차의 좌석 예약, 증권시세, 은행의 예금 입출력 이용
▶장점
-데이터의 발생과 동시에 처리 수행
-항상 최신 내용으로 유지
-응답 시간이 짧음
▶단점
-시스템이 복잡 : 계속되는 정보를 유지, 갱신하기위해서 대용량 고속의 랜덤 액세스 파일을 사용
-가격이 비싸지는 경향
-시스템의 운영, 특히 신뢰성과 보안성에 세심한 주위 요구
시분할 처리 시스템(Time-sharing processing system)
CPU를 여러 사용자가 일정 시간씩 할당 받아서 교대로 수행하는 방법
▶목적 : 각 사용자로 하여금 자신만이 컴퓨터 시스템을 독점 사용하고 있는 듯한 착각을 유도
-실행 결과나 수정 결과를 사용자에게 직접 그 즉시 응답
-메모리에 적재된 각 프로그램에게 짧은 시간 할당
-짧은 시간동안 교대로 프로그램을 실행
다중처리 시스템(Multi-processing system)
멀티 프로그래밍 방식에 있어서 CPU를 여러 대 갖춘 시스템으로 여러 개의 중앙처리 장치를 도입
▶CPU 가격이 상대적으로 저렴해짐에 따라 개발
-시스템의 처리속도, 처리율, 신뢰성 향상을 위하여 제작
-여러 개의 프로그램을 동시에 처리하는 방식
▶CPU의 구성에 따라
-동질형 다중 처리기 : 같은 종류의 CPU로 구성된 시스템
-이질형 다중 처리기 : 다른 종류의 CPU로 구성된 시스템
▶CPU의 결합 정도에 따라
-강 결합 시스템 : 여러 개의 CPU가 하나의 메모리를 공유하면서 CPU간 통신은 시스템 버스를 통해 이루어 짐
-약 결합 시스템 : 버스 혹은 네트워크를 통해 이루어 짐
분산 처리 시스템(DIstributed processing system)
컴퓨터 네트워크를 이용해서 복수의 컴퓨터를 이용하는 방식
▶장치의 공유를 허용하는 동시에 신뢰성을 향상
▶장점
-가격이 싼 개인용 컴퓨터를 이용
-중앙 컴퓨터에서 업무가 폭주하는 것을 막을 수 있음
-통신 횟수를 줄일 수 있어 경제적
▶분산 시스템을 이용하는 이유
-자원공유, 처리의 신속성, 신뢰성, 통신 등
입출력 프로그래밍
▶중앙처리장치와 입*출력장치 간의 처리 속도 차이가 문제
▶입출력은 중앙처리장치와 비동기적(asynchronous)으로 수행
▶입출력장치와 중앙처리장치 간의 상호 작용 >입출력 프로그래밍 필요
BIOS(basic input/output system)
부트 프로세스를 실행시키는 명령어들을 포함하고 있으며, 이러한 형태의 컴퓨터 칩에 저장된 명령어들
(펌웨어(firmware))
부트 진행 과정(boot process)
-컴퓨터 가동을 위해 파워 버튼을 누르면 부트 로더가 초기화 됨
-POST(Power-On Self-Test) 수행 시작
-다른 BIOS들이 가동을 위해 초기화 됨
-유저는 필요에 따라 BIOS 접근을 위한 비밀키 입력을 요구받음
-간단한 메모리 테스트가 수행되고 여러 파라메타들이 세트됨
-플러그앤플레이(Plug&Play) 디바이스들이 초기화 됨
-DMA(Direct Memory Access) 채널을 위한 자원들과 IRQ(Interrupt Request)가 할당됨
-부트 디바이스들이 정해지고 초기화 됨
-OS가 초기화 됨
POST(Power-On Self-Test)
컴퓨터에 전원이 공급되었을 때, 컴퓨터 키보드, 램, 디스크 드라이브 그리고 기타 하드웨어 등이 바르게 동작하는지를 확인하기 위해, 컴퓨터 BIOS가 동작시키는 일련의 진단 시험 과정
버퍼링(buffering)
중앙처리장치에 비해 입출력장치의 매우 느린 속도를 보완하는 한 가지 방법
▶한 레코드가 CPU에서 연산이 시작함과 동시에 입출력장치가 곧 다음에 필요한 자료를 미리 읽어서 주기억장치에 저장함으로서, CPU가 필요한 자료를 기다리는 일이 없도록 함
스풀링(SPOOLing) Simultaneous Peripheral Operation On-Line
다중 프로그래밍 환경하에서 다수의 프로세스들이 입출력장치를 서로 요구하나 실제로 그 장치의 수가 제한되어 있을 때 이들에 대한 공유를 가능하게 하기 위하여 가상적인 장치를 각 프로세스에게 제공해 주는개념
버퍼링 : 주기억장치를 버퍼로 사용
스풀링 : 디스크를 매우 큰 버퍼처럼 사용
채널(channel)
입출력장치와 CPU 사이에 입출력 전담 처리기인 입출력 채널을 두어 CPU의 효율을 향상
입출력 채널 동작원리
-CPU는 채널의 현재 상태를 점검
-채널의 상태가 양호하면 입출력 동작을 시작 명령
-채널은 채널 명령어를 선택한 후, 데이터의 입출력을 CPU와는 무관하게 독립적으로 수행
-수행이 종료되면 CPU에 인터럽트 요청
-CPU는 해당 채널의 인터럽트를 인지하여 상황에 따른 다
-음 동작을 명령
채널 종류
▶선택형 채널(selector channel)
-여러 개의 입출력장치가 연결되어 있다 하더라도 한 순간에 한 개의 입출력장치만을 선택하여 처리
-주로 고속인 장치들 즉, 디스크, 드럼 등의 입출력장치들을 처리
▶멀티플렉서형 채널(multiplexor channel)
-키보드, 프린터, 카드 리더 그리고 터미널 등과 같은 비교적 전송속도가 느린 입출력장치를 제어
-다수의 저속도 입출력장치가 채널의 단일 데이터 경로를 공유
▶블록 멀티플렉서형 채널(block multiplexor channel)
-디스크나 테이프처럼 블록 단위로 입출력하는 장치들을 처리
-멀티플렉서 채널과 같이 다수의 입출력장치를 동시에 처리
인터럽트(interrupt)
시스템에 예기치 않은 상황이 발생하였을 때, 그것을 운영체제에 알리기 위한 메커니즘
종류
▶입출력(I/O) 인터럽트 : 해당 입출력 하드웨어가 주어진 입출력 동작을 완료하였거나 또는 입출력의 오류 등이 발생하였을 때 중앙처리장치에 대하여 요청하는 인터럽트
▶외부(external) 인터럽트 : 시스템 타이머(timer)에서 일정한 시간이 만료된 경우나 오퍼레이터가 콘솔 상의인터럽트 키를 입력한 경우, 또는 다중 처리 시스템에서 다른 처리기로부터 신호가 온 경우 등에 발생
▶SVC(SuperVisor Call) 인터럽트 : 사용자 프로그램이 수행되는 과정에서 입출력 수행, 기억장치의 할당, 또는 오퍼레이터의 개입 요구 등을 위하여 실행 중의 프로그램이 SVC 명령을 수행하는 경우에 발생
▶기계 검사(machine check) 인터럽트 : 컴퓨터 자체 내의 기계적인 장애나 오류로 인한 인터럽트
▶프로그램 에러(program error) 인터럽트 : 주로 프로그램의 실행 오류로 인해 발생. 예를 들면, 수행 중인 프로그램에서 0으로 나누는 연산이나, 보호(protection)되어 있는 기억장소에 대한 접근, 허용되지 않는 명령어의 수행, 또는 스택의 오버플로(overflow) 등과 같은 오류가 발생할 때 일어남
▶재시작(restart) 인터럽트 : 오퍼레이터가 콘솔 상의 재시작 키를 누를 때
'전공 > 운영체제' 카테고리의 다른 글
[운영체제] - 6. 프로세스 간 동기화와 통신 (0) | 2022.06.10 |
---|---|
[운영체제] - 5. 디스크 스케줄링과 파일 시스템 (0) | 2022.06.09 |
[운영체제] - 4. 가상 메모리 관리 (0) | 2022.06.09 |
[운영체제] - 3. 기억장치 관리 (0) | 2022.06.09 |
[운영체제] - 2. 프로세스와 스레드 관리 (0) | 2022.06.09 |