선릉역 1번 출구

운영체제2 본문

Hacking & Security/사전교육

운영체제2

choideu 2022. 5. 10. 13:28

간접 입/출력 방식

cpu가 직접 입출력을 담당하지 않고 "interrupt"를 사용해 전용 입/출력 프로세서인 DMA나 channel을 사용하는 방식

DMA: cpu를 거치지 않고, 주변장치와 메모리 사이에 직접 데이터를 전달하도록 제어하는 인터페이스 방식

I/O Channel: 가장 완벽한 입출력 방식, 입출력과 관련된 독립적인 채널을 만듦. cpu 효율을 향상시킬 수 있음

(cpu가 channel에게 명령을 내림)

  1.  selector: 한번에 하나의 주변장치만을 선택함 (고속 장치)
  2.  multiplexor: 한번에 여러 장치를 선택함
  3.  블록 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)

  • 단말이나 제어대상으로부터 처리 요구가 발생할 때마다 즉시 처리하는 기법
  • 처리시간 및 비용이 단축
  • 자료가 무작위하게 도착하기 때문에 입/출력 자료의 일시 저장과 대기가 필요

https://libertegrace.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EC%9D%98-%EB%B0%9C%EC%A0%84%EC%82%AC%EB%B0%B0%EC%B9%98-%EC%B2%98%EB%A6%AC-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%8B%9C%EB%B6%84%ED%95%A0-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EB%A9%80%ED%8B%B0-%ED%83%9C%EC%8A%A4%ED%82%B9

 

[운영체제] 운영체제의 발전사(배치 처리 시스템, 시분할 시스템, 멀티 태스킹)

운영체제의 발전사를 보면서 각각의 운영체제의 기능들이 어떻게 발전해왔는지, 어떤 트렌드가 있었는지 알아보았다. 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
Comments