선릉역 1번 출구
운영체제2 본문
간접 입/출력 방식
cpu가 직접 입출력을 담당하지 않고 "interrupt"를 사용해 전용 입/출력 프로세서인 DMA나 channel을 사용하는 방식
DMA: cpu를 거치지 않고, 주변장치와 메모리 사이에 직접 데이터를 전달하도록 제어하는 인터페이스 방식
I/O Channel: 가장 완벽한 입출력 방식, 입출력과 관련된 독립적인 채널을 만듦. cpu 효율을 향상시킬 수 있음
(cpu가 channel에게 명령을 내림)
- selector: 한번에 하나의 주변장치만을 선택함 (고속 장치)
- multiplexor: 한번에 여러 장치를 선택함
- 블록 multiplexor: 테이프 장치를 처리하는 channel
버퍼링과 스풀링(cpu 고속 - 입출력장치 저속: 두 시스템 사이의 속도 차이를 줄이기 위한 방법)
-버퍼링: 입출력 장치와 보조기억장치의 철리 속도가 cpu 처리속도보다 느린 문제를 보완하는 방법
:cpu가 하나의 연산을 시작하자마자, 입출력 장치가 다음에 필요한 레코드를 미리 읽어 주기억장치에 저장해 cpu의 대기시간을 절감함
-스풀링: 버퍼링과 같은 개념이지만, 스풀링은 디스크를 매우 큰 버퍼처럼 사용하는 것임
메모리에 쓰면 버퍼링, 하드디스크에 쓰면 스풀링임
https://m.blog.naver.com/kji9653/222049226704
버퍼링[ buffering ]이란? 스풀링[ spooling ]이란?
안녕하세요. 비티샘입니다. 버퍼링에 대해 알아보겠습니다. 컴퓨터 운영체제를 알아보다 보면 버퍼링은 이...
blog.naver.com
파일 관리
- 파일에 대한 조작, 저장방식, 접근방법에 대한 관리 수행(OS의 역할)
3-1. 운영체제의 기술발전 흐름
단순모니터: 컴퓨터 오퍼레이터가 할 일을 자동으로 수행
일괄처리 시스템
- 여러 개의 작업을 단일 작업으로 묶어 일괄처리 하는 시스템
- 데이터를 즉시 처리하는 것이 아닌 일정량이 쌓일 때까지 기다림
- 보조기억장치의 속도가 느려 처리 시간이 많이 걸렸으며, 이를 보완하기 위해 모니터링, 버퍼링, 스풀링의 개념이 도입됨
다중프로그래밍 시스템
- 입출력장치와 CPU의 속도 차이에 따른 비효율 문제를 개선
- 주기억장치 내에 2개 이상의 프로그램을 적재해 그 중 하나가 실행될 경우, 실행 중 입출력 장치 등의 조작으로 cpu 유휴시간이 발생하면 운영체제가 다른 프로그램을 실행함
- 여러 프로그램을 메모리에 적재하고 프로세서를 할당하는 것임(프로세서는 유휴 시간이 없음)
시분할 처리 시스템(time-sharing system)
- 프로세스의 사용 시간을 분할하여 다중 사용자가 cpu를 순환하여 이용
- Time slice
분산처리 시스템(DPS)
- 하나의 대형 컴퓨텅에서 수행하던 기능을 지역적, 기능적으로 분산된 컴퓨터가 분담하여 네트워크를 통하여 처리
- 자원공유
- 계산속도 향상 -> 신뢰도가 향상, 통신기능
다중처리 시스템(multiprocessing system)
- 여러 개의 작업을 하나의 시스템(다수의 cpu)에서 동시에 처리할 수 있는 시스템
- 여러 개의 프로세스가 메모리에 저장되어 자원이 할당될 때마다 다시 실행되면서 처리를 완료할 때까지 메모리에 존재하는 시스템
실시간 시스템(Real time)
- 단말이나 제어대상으로부터 처리 요구가 발생할 때마다 즉시 처리하는 기법
- 처리시간 및 비용이 단축
- 자료가 무작위하게 도착하기 때문에 입/출력 자료의 일시 저장과 대기가 필요
[운영체제] 운영체제의 발전사(배치 처리 시스템, 시분할 시스템, 멀티 태스킹)
운영체제의 발전사를 보면서 각각의 운영체제의 기능들이 어떻게 발전해왔는지, 어떤 트렌드가 있었는지 알아보았다. 1950년대) ENIAC: 첫 번째 컴퓨터 이 때는 운영체제가 없었다. 1개의 응용 프
libertegrace.tistory.com
4-1. 운영체제의 주요 구성 기술
프로세스 관리
프로세스
- 현재 수행 상태에 있는 프로그램(프로그램은 static, 프로세스는 dynamic), 여러 명령어, 데이터, 카운터, cpu 레지스터, 루틴 인자, 복귀 주소, 저장된 변수 등 데이터 스택 포함
- (낮은 주소)Text -> Data -> Heap -> Stack(높은 주소)
프로세스 상태 변화
- 생성(New): 새로 만들어졌지만, OS에 의해 실행 가능한 프로세스 집합에 포함되지 않은 상태
- 준비(Ready): 프로세스가 실행되고 있지 않지만 즉시 CPU를 사용할 수 있으며, CPU 할당을 기다리는 상태
- 실행(Running): 현재 CPU를 차지하여 동작중인 상태
- 대기(Block or waiting): 어떤 사건(I/O or Signal)이 발생하기 전까지는 실행될 수 없는 상태
- 보류(Hold): 프로세스가 디스크 등에 보관되어 있는 상태
- 교착(Deadlock): 결코 일어날 수 없는 사건을 기다리는 상태
- 종료(Exit): 운영체제에 의해 프로세스 집합에서 해제된 상태
PCB
- OS가 프로세스에 대한 중요한 정보를 저장하는 저장소
- OS는 프로세스의 실행 중단시, 중단 후 재실행 시 경우에 PCB를 참조함
스레드와 테스트(thread/task)
- 스레드: 프로세스를 수행하는데 필요한 가능한 많은 하위 작업중 하나
- (프로세스보다 작은 단위로 cpu를 사용하는 최소 단위가 됨
- 테스크를 실행하는 가장 작은 단위가 thread임
- 테스크: 자원 할당의 단위로 프로세스와 같은 개념
- 프로세스 = {스레드1, 스레드2,...}
프로세스 스케줄링
- 멀티 프로세스 시스템에서 cpu를 사용하는 프로세스 결정문제임
- 우선순위 결정
- 스와핑: 메모리에서 프로세스를 제거하는 것이 효율적인 경우, 프로세스를 제거하였다가, 차후 이 프로세스를 다시 호출하여 중단되었던 지점부터 실행을 재개함
- 응답시간, 오버헤드, 반환시간, 대기시간을 최소화하는 쪽으로 진행되어야 함
- 어떤 프로세스를 커널에 등록할 것인가를 정하는 장기 스케줄링(1)
- 어떤 프로세스에게 메모리를 할당할 것인지를 정하는 중기 스케줄링(2)
- 어떤 프로세스에게 cpu를 할당할 것인지를 정하는 단기 스케줄링(3)
스케줄링 알고리즘
비선점
- FIFO
- SJF
- HRN
선점
- RR
- SRT
- Multilevel Queue
- Multilevel feedback Queue
우선순위의 문제점
무기한 봉쇄: 실행 준비는 되어 있으나 cpu를 사용 못하는 프로세스를 cpu가 무기한 대기하는 상태
기아 상태: 특정 지원 목록에 대해 권한을 못얻어 영원히 얻지 못해 자신의 일을 하지 못하는 상태
Context Switching -> 하나의 오버헤드임
'Hacking & Security > 사전교육' 카테고리의 다른 글
운영체제4 (0) | 2022.05.16 |
---|---|
운영체제3 (0) | 2022.05.15 |
운영체제1 (0) | 2022.05.09 |