페이지

2014. 7. 8.

입출력 인터럽트

폴링과 인터럽트


<차이점>

  • 폴링(polling)


    1. CPU가 각각의 주변장치들을 연속적으로 순환하며 혹시 인터럽트 요구가있는지 없는지를 수시로 체크하는 방법
    2. 주변장치의 상태를 보관할 필요 없음





  • 인터럽트(interrupt)


  1. 주변장치에서 CPU로 들어오는 보고만을 취하는 방법
  2. CPU는 주변장치의 현재 상태를 보관해야 함
  3. 폴링과 반대로 CPU가 각 주변장치 상태를 일일이 파악하지 않고 입출력 요구 가 있을때만 CPU가 관여
  4. 인터럽트가 발생하면 CPU는 인터럽트 서비스 루틴에 의해 이를 처리하고 원 래 상태로 복귀
  5. 이 때, CPU의 상태를 저장하고 나중에 복구
  6. 주변장치가 데이터 전송을 위한 준비가 되면 CPU에게 인터럽트를 요구
  7. CPU가 인터럽트를 감지하면 수행 중이던 작업을 중지하고 데이터 전송을 처 리하기 위하여 인터럽트 서비스 루틴으로 분기하여 데이터 전송 수행



인터럽트의 종류


<정의>

  • 정상적인 프로그램을 수행하는 컴퓨터 시스템에 예기치 않은 긴급 상황이 발  생할 경우 수행중인 프로그램을 중단하거나 비정상적인 종료를 하고, 운영체제  에 의해 적절한 조치를 취할 수 있도록 하는 기법


<종류>

  • 입출력 인터럽트
  • 외부 인터럽트
  • 슈퍼바이저 호출 인터럽트
  • 프로그램 검사 인터럽트
  • 기계 검사 인터럽트
  • 재시작 인터럽트


인터럽트 구조 및 처리

<개요>

  • CPU가 명령어를 수행하고 있는 동안에 발생하는 시스템의 어떤 응급 상황에 대처하기 위한 일련의 조치
  • 인터럽트가 발생하는 원인에 따라 적절한 인터럽트 처리 루틴으로 최소한의 조치를 취하고, 인터럽트 서비스 루틴에 의해 발생하는 응급 상황을 해결





<단계별 인터럽트 처리 내용>

  • 인터럽트 발생 및 처리
  • 인터럽트 서비스
  • 인터럽트 완료 및 복구


<문맥 교환(context switching)>

  • 인터럽트가 발생했을 때 운영체제가 인터럽트를 당한 현재 실행중인 프로그램  의 상태를 저장한 후, 제어권을 인터럽트 서비스 루틴에게 넘겨주는 작업


<PSW(Program Status Word)>

  • 명령문 수행의 순서를 조절하며, 실행 중이던 프로그램의 상태에 대한 여러 가  지 정보를 보관
  • 종류 : 현 PSW, 신 PSW, 구 PSW





입출력 버퍼링

버퍼링(buffering)


<개념>

  • 한 작업의 연산과 함께 입출력을 동시에 수행하는 방법
  • 데이터를 입력한 후, CPU가 이를 연산하려고 하는 순간 입력장치는 바로 다음  입력을 시작
  • CPU와 입력장치는 동시에 동작하며, 양쪽의 속도가 비슷하다면 버퍼 이용이  효율적
  • 실질적으로 버퍼링은 CPU와 입출력 장치의 둘 중에서 어느 하나가 먼저 종료  할 수 있기 때문에 항상 CPU와 입출력 장치가 동시에 동작할 수 없음






<버퍼를 이용하는 이유>

  • CPU가 문자나 데이터 하나 하나를 읽을 때마다 입출력 채널에게 명령을 수행  하도록 한다면 매우 복잡하고 많은 작업량이 필요함
  • 버퍼를 사용하여 문자나 데이터를 미리 읽어온 후 필요할 때마다 사용하게 한  다면 훨씬 효율적이기 때문



<유형>

  • 단일 버퍼링(single buffering)
  • 이중 버퍼링(dual buffering)
  • 환형 버퍼링(circular buffering)





단일 버퍼링


<개념> 

  • 1개의 버퍼를 사용하는 경우
  • CPU는 채널이 버퍼를 채울 동안 기다리거나 혹은 다른 프로그램을 실행
  • 버퍼를 CPU와 채널이 동시에 사용할 수 없으며, 상호간에 통신이 필요함
  • CPU : 버퍼가 비어 있을 때만 버퍼에 데이터를 채울 수 있고, 
  • 채널 : 버퍼가 채워져 있을 때만 버퍼의 데이터를 비울 수 있음







이중 버퍼링



<개념>

  • 2개의 버퍼를 사용하는 경우
  • 단일 버퍼링의 단점을 보완하고 CPU간의 처리 성능을 향상시키는 방법
  • 입출력 작업과 처리 작업이 동시에 진행될 수 있는 반면, 기억장치의 낭비를  초래할 수도 있음


<특징>

  • 버퍼를 채우는 CPU 속도와 비우는 채널 속도가 비슷하면 최적의 효율
  • 둘 중에 하나의 속도가 빠르다면 버퍼가 항상 비어 있거나 혹은 꽉 차 있   을 수 있음  
  • CPU는 채널에게 하나의 버퍼에 대한 입출력을 명령하면, 채널은 CPU의 명령  을 받고 독자적으로 입출력 수행
  • CPU는 더 이상 입출력에 관여하지 않고 다른 버퍼를 채우거나 또 다른 작업을  수행할 수 있으므로 CPU의 효율 증대








환형 버퍼링


<개념>
  • 환형 큐를 사용하여 여러 개의 버퍼를 원형으로 구성하여 입출력을 수행하는  방법
  • CPU와 채널이 동시에 버퍼를 채우거나 비우는 각 작업을 독립적으로 수행
  • 다수 개의 버퍼를 사용하므로 상당량의 기억장치를 차지하기 때문에 자칫 기  억장치의 낭비 요인이 될 수 있음
  • 버퍼의 수 고려


    1. 버퍼 수 많음 : 기억장치 낭비
    2. 버퍼 수 적음 : 버퍼를 기다리는 프로세스의 수 증가
  • 버퍼의 수를 결정하는 일은 시스템 성능에 매우 중요한 요소
  • CPU 바운드와 채널 바운드

    1. CPU bound : CPU에 의한 연산이 많고 입출력 횟수가 적어, 버퍼 사용 비율이 적은 연산 위주의 프로세스
    2. channel bound : CPU에 의한 연산지 적고 입출력 횟수가 많아, 버퍼 사용 비율이 많은 입출력 위주의 프로세스





스풀링



<개념>

  • SPOOL : Simultaneous Peripheral Operation On-Line
  • 디스크의 일부를 스풀 공간이라고 부르는 매우 큰 버퍼처럼 사용하는 방식
  • 사용 이유 : 입출력장치와 CPU간의 처리 속도 차이 해소
  • 방식


    1. 미리 입력 장치로부터 디스크로 레코드나 블록을 읽어 들이고,
    2. 출력 장치로 레코드나 블록을 직접 출력하기 보다는 디스크 상에 출력 파일로 저장하여 나중에 출력






<특징>

  • 다중 프로그래밍 환경에서 사용되는 개념
  • 가상 기억장치인 디스크를 입출력 매체로 이용



<버퍼링과 스풀링의 차이점 비교>


입출력 구조와 방식

입출력 구조



  • 운영체제는 입출력 장치에 입출력에 관련된 각종 명령어를 입력하고 인터럽트를 발견하고 오류를 처리함
  • 또한, 단순하고 편리한 형태로 입출력 장치와 컴퓨터 시스템의 다른 부분간의 인터페이스 기능도 아울러 제공함
  • 다양한 주변 장치들을 관리할 때 유지되어야 할 기능들


    1. 블록 단위의 데이터 전송 기능
    2. 컴퓨터 본체나 디스크, 테이프 등의 2차 기억장치와 외부 환경과의 인터페이스 기능
    3. 하드웨어와 독립적인 관리가 가능한 자원과의 독립성 유지 기능
    4. 프로세스 개념을 사용한 쉽고 편리한 입출력 수행 기능



입출력 하드웨어 장치


<블록 장치>

  • 자신의 주소를 갖고 있으면서 고정된 크기의 블록으로 정보를 저장하는 장치
  • 기본적인 속성은 다른 블록과는 독립적으로 각 블록을 읽거나 쓸 수 있음


<문자 장치>

  • 어떤 블록 구조와도 상관없이 문자 스트림(stream)으로 송수신 가능
  • 디스크처럼 주소 지정이나 탐색 동작이 필요 없음
  • 터미널, 라인 프린터, 자기 테이프, 펀치 카드, 네트워크 인터페이스, 마우스


<장치 제어기(device controller)>

  • 시스템의 모듈화와 일반적인 설계를 제공하기 위한 전형적인 입출력 장치의 전기적인 구성 요소
  • 운영체제의 입출력 프로그래밍은 항상 장치가 아닌 장치 제어기와 연관되어 처리되기 때문에 장치 제어기와 장치의 명확한 구분 필요
  • 컴퓨터는 CPU와 장치 제어기 사이의 통신을 위해서 단일 버스 사용








입출력 소프트웨어 설계시 고려사항





  • 장치와의 독립성 유지
  • 입출력시 오류 처리
  • 입출력시 동기와 비동기 전송
  • 입출력시 장치의 공유와 전용










입출력 방식


직접 입출력 방식

<개념>

  • CPU가 직접 입출력을 담당하는 방식
  • 초기의 컴퓨터 시스템에서 사용
  • CPU가 프로그램을 수행 중 입출력 명령을 만나면 직접 CPU가 나서서 입출력을 수행하는 방식


<수행 방식>

  • CPU가 장치 플래그(flag)의 상태를 검사하여 장치 플래그가 0일 때 입출력 명령을 수행
  • 데이터 입력시에는 장치 플래그가 0이 되면 입출력 장치의 데이터를 주기억 장치에 넣은 다음 장치 플래그를 1로 설정한 후, 입출력 장치 초기화
  • 데이터 출력시에는 장치 플래그가 0이 되면 주기억 장치의 데이터를 입출력 장치에 보낸 다음 장치 플래그를 1로 설정한 후, 입출력 장치 초기화






간접 입출력 방식


<개념>

  • 다중 프로그래밍을 구현하기 위해 이용하는 방식
  • CPU가 직접 입출력 명령을 담당하지 않고 전용 입출력 프로세서인 DMA나 채널을 사용하는 방식


<수행 방식>

  • 어떤 프로그램이 수행되는 도중에 입출력 명령이 발생하면 CPU에게 입출력명령의 종류, 장치 이름, 입출력 프로그램의 등과 같은 정보 전달
  • CPU는 입출력 프로세서에게 입출력 명령을 수행토록 하고,입출력 프로세서로부터 입출력 완료 신호가 올 때까지 CPU 자신은 작업을 중단 하지 않고 다른 프로그램을 수행
  • 이후에, 입출력 프로세서로부터 입출력 완료 신호가 인터럽트 방식에 의해CPU에게 보고되면,CPU는 현재 수행 중이던 프로그램을 멈추고 입출력이 발생했던 최초의 프로그램으로 복귀하여 중단되었던 프로그램의 수행을 재개







<DMA 방식>

  • 입출력 장치로부터 데이터를 직접 기억장치로 전송하는 것
  • 직접 입출력 방식과의 차이는 CPU 레지스터를 이용하지 않고 CPU의 사이클을 훔쳐(cycle steal) 입출력을 수행한다는 점
  • 사이클 스틸 : CPU와 DMA가 각각 연산과 입출력을 위해 동시에 기억장치를 접근하는 경우, CPU는 기억장치 참조 사이클을 수행하여 입출력을 수행하는 것
  • 데이터 전송은 기억장치 버스를 통하여 수행되도록 함으로써 빠르게 데이터전송을 수행














<입출력 채널 방식>

  • 입출력 명령은 독립된 입출력 프로세서인 채널이 대신하는 것
  • 입출력 명령을 수행하는 동안 CPU는 다른 프로그램을 수행함으로써 CPU의 효율을 향상시킴
  • 다중 프로그래밍 가능
  • 입출력 프로세서 : PPU 또는 채널이라 불리는 프로세서 그 자체가 하나의 CPU와 유사한 성능을 갖는 프로세서
  • 종류


    1. 선택 채널(selector channel)
    2. 멀티플렉서 채널(multiplexor channel)
    3. 블록 멀티플렉서 채널(block multiplexor channel)












2014. 7. 7.

운영체제의 종류 2

다중 프로그래밍 시스템

<개념>

  • CPU의 효율을 극대화 시키기 위한 방법
  • 여러 개의 프로그램이 마치 동시에 실행되는 것처럼 처리하는 방식
  • CPU의 효율 최적화




<특징 및 장단점>

  • CPU 1개, 주기억 장소에 의해 여러 개의 프로그램이 존재하여 다중 작업 구현
  • 다중 프로그래밍 시스템에서는 작업의 전환이 가능함으로써 CPU의 유휴 시간  을 감소시킴
  • 여러 개의 작업을 준비 상태에 두고 관리하며, 어느 한 작업을 실행할 작업으  로 선정하기 위한 기억장치 관리 기법이나 CPU 스케쥴링 기법이 필요
  • 스케쥴링 정책, 교착 상태, 병행 제어 및 보호 문제 등을 고려해야 함





다중처리 시스템 

<개념>

  • 동시에 프로그램을 수행할 수 있는 CPU를 2개 이상 두고 각각 그 작업을 분담  하여 처리할 수 있는 다중 작업 방식
  • 사용 목적은 작업의 신뢰성과 컴퓨터의 능력을 증대 시키는데 있음
  • 여러 개의 프로세서가 공동 기억장치를 통해 메모리를 공유하며, 다중처리기 의 단일 운영체제에서의 제어가 가능한 시스템



<특징 및 장단점>

  • CPU를 여러 개 사용하므로 작업의 처리 속도와 신뢰성을 높임
  • 한쪽의 CPU가 고장나도 다른 CPU를 이용하여 계속 작업 처리
  • 운영체제는 여러 CPU 간의 기억장치 공유를 어떻게 지원할 것이며, 여러 CPU  들의 스케쥴링을 어떻게 할 것인가를 결정
  • 신뢰성과 병행 계산 문제, 최적의 연결 기법, 같은 자원을 요구하는 CPU들간의 경쟁을 제어하는 문제 등을 고려





실시간 처리 시스템

<개념>

  • 단말기나 제어 대상으로부터 직접성과 시한성을 갖는 자료가 발생할 때마다 즉시 처리하여 그 결과를 출력하거나 요구에 응답하는 방식
  • 특수 목적을 위한 분야에 제어 장치로 사용



<특징 및 장단점>

  • 자료가 발생한 지점에서 단말기를 통해 직접 입출력 되기 때문에 사용자의 수  고가 절감
  • 처리 시간이 단축되고, 처리 비용도 절감
  • 자료가 임의로 도착하므로 입출력 자료의 일시 저장 및 대기가 필요
  • 시스템에 장애가 발생할 때, 단순한 재실행이 불가능






분산처리 시스템

<개념>

  • 하나의 대형 컴퓨터 시스템에서 수행하던 기능을 지역적으로 분산된 여러 대 의 단말기에 분담시킨 후, 통신 회로를 통하여 상호간에 교신 및 처리하는 방식
  • 연산 속도와 신뢰성을 향상시키고, 컴퓨터 자원을 보다 효율적으로 이용하고 자 하는 방안



<특징>

  • 통신 기능 : 다수의 노드가 네트워크로 상호 연결되어 있으며, 각각의 프로세 서간에 정보를 교환할 수 있음
  • 자원 공유 : 다수의 노드가 네트워크를 통해 상호 연결되어 있으며, 한 노드에 있는 사용자는 다른 노드의 자원을 사용할 수 있음
  • 계산속도 증가 : 특정 연산이 병행적으로 수행될 수 있는 다수의 부 연산 단위 로 분할될 수 있으며, 병행 수행을 통해 여러 노드에 연산을 분 담시킴
  • 신뢰성 향상 : 한 노드의 장애가 나머지 노드에 영향을 주지 않고 계속 동작 할 수 있음


운영체제의 종류 1

<운영체제의 종류>


초기 운영체제 시스템


  1. 초기의 컴퓨터 시스템은 하드웨어만 존재하고 운영체제는 존재하지 않음
  2. 초기의 작업 환경은 수작업에 의한 대화적인 성격을 띠고 있어 조작원(operator)이 곧 프로그래머였음

  • 작업 준비 시간(setup time)이 많이 소요됨
  • CPU의 유휴 상태(idle state)로 인한 비효율성

<특징 및 장단점>

  • 프로그래머가 컴퓨터 하드웨어를 직접 조작
  • 한 번에 하나의 작업만 수행되므로 구현이 단순
  • 장치 구동기(device driver) 사용
  • 작업은 독립된 여러 단계로 나누어져 실행되므로 준비 시간이 많이 걸림
  • 비효율적인 CPU의 사용 및 작업 시간 낭비를 초래



상주 모니터


<CPU의 사용율을 높이기 위한 2가지 해결 방안>


  • 전문 조작원을 고용함으로써 CPU의 유휴 시간을 줄임 
  • 유사한 작업을 하나로 묶어서 그룹별로 수행시킴으로써 작업준비 시간을 줄임


<상주 모니터(resident monitor)> 


  • CPU의 유휴 시간을 감소시키기 위한 방안 
  • 항상 주기억장치에 상주하고 있음




<상주 모니터에 의한 일괄처리 시스템의 작업 과정>


  • 프로그래머는 상주 모니터에게 전달된 작업 제어 카드(job control card)에 의  해 전달

  • 상주 모니터는 작업 제어 카드가 지시하는 대로 자동 작업 순서화를 제공

  • 작업 제어 카드가 하나의 프로그램이 실행될 것이라는 것을 나타내면 상주 모 니터는 프로그램을 기억장치에 적재하고 제어를 프로그램으로 넘김

  • 프로그램이 수행을 완료하면 제어는 상주 모니터로 복귀

  • 상주 모니터는 다음 작업 제어 카드를 읽고 적합한 프로그램을 적재하는 일 등을 수행

  • 모든 작업 제어 카드가 작업으로 번역될 때까지 이러한 일은 반복되며, 상주 모니터는 자동적으로 다음 작업을 계속 수행







일괄처리 시스템


<개념>

  • 초기 시스템의 작업 준비 시간을 줄이기 위한 방안 
  • 요구 사항이 비슷한 여러 개의 작업들을 모아서 한꺼번에 처리하는 것


<특징 및 장단점>


  • 컴퓨터 시스템을 효율적으로 사용 
  • 초기에 하나의 작업을 실행하는 시스템에서는 시스템 성능이 크게 향상 
  • 작업 시간이 길어 반환 시간(turnaround time)이 늦음 
  • 적절한 작업 제어 카드를 제공해야 함 
  • 프로그램의 오류 수정이 작업이 어려움
  • CPU가 유휴 상태가 되기 쉬움






오프라인 시스템


<개념>


  • 입력
CPU가 직접 카드를 읽기 보다는 카드에 있는 내용을 먼저 자기 테이프 에 복사하여 자기 테이프의 내용이 모두 차게 되면 자기 테이프를 컴퓨 터로 옮겨 프로그램이 자기 테이프로부터 내용을 읽어 오도록 함


  • 출력
내용을 바로 출력하는 것이 아니라 자기 테이프 상에 기록한 후 나중에 자기 테이프의 내용을 출력




<특징 및 장단점>


  • 주 컴퓨터가 카드 판독기와 라인 프린터의 속도에 더 이상 영향을 받지 않고, 훨씬 빠른 자 이프의 속도에 영향을 받음
  • 오프라인 시스템에서는 응용 프로그램이 직접 입출력 동작에서 오프라인 입출 력 동작으로 환하기 위해 어떤 수정도 필요치 않음
  • 어떤 하나의 프로그램이 다른 입출력 장치와 함께 실행 될 수 있는 장치 독립성 이 보장
  • 하나의 CPU에 대해 여러 대의 카드 판독기와 라인 프린터 및 자기 테이프를 사용할 수 있음





온라인 시스템


<개념>


  • CPU와 주변장치가 온라인으로 연결되어 작동하고, 사용자와 컴퓨터 시스템간에 온라인 통신을 제공하여 사용자가 운영체제나 프로그램에 직접 명령을 주고 즉시 응답을 받을 수 있는 시스템





<특징 및 장단점>


  • 사용자는 프로그램을 쉽게 사용할 수 있음
  • 실행 결과를 곧바로 받아 볼 수 있는 응답 시간이 짧음
  • 실행 결과가 즉시 출력되기 때문에 프로그래머에게 프로그램 검사와 개발에 당한 유용성을 제공
  • CPU는 프로그래머나 조작원에 의해 취해질 동작을 기다리는데 상당한 유휴 시간이 생김




시분할 시스템


<개념>

  • CPU 시간을 각 사용자에게 균등하게 분할하여 사용하도록 하는 시스템 
  • 모든 컴퓨터 사용자들에게 동일한 서비스를 제공해 주는 것이 목표  
  • 동시에 많은 사용자들이 컴퓨터를 공유




 <특징 및 장단점>

  • 여러 사용자가 공동으로 CPU를 사용
  • 여러 개의 프로그램을 주기억장치에 적재
  • 한 번에 주기억장치 내에 하나의 사용자만을 두는 교체(swapping) 기법 사용
  • 자원 제어에 대한 대부분의 책임을 운영체제에게 전가 시킴으로써 운영체제가 복잡
  • 운영체제는 기억장치에 복수 개의 프로그램을 동시에 유지해야 하는 문제가 발생 
  • 기억장치 관리 기법, 디스크 스케쥴링 정책 등이 필요
  • 여러 사용자에 대한 공정한 자원 공유를 위해 CPU 스케쥴링 정책 필요
  • 실행 중인 프로세스간의 통신 및 입출력 장치 사용에 대한 제어 및 관리 능력

운영체제 발전 과정

<운영체제의 발전 과정>




제 0 세대(1940년대)


  • 운영체제의 개념이 없었음 
  • 기계어를 직접 사용자원의 현재 상태 파악

제 1 세대(1950년대)


  • 초기 일괄처리 시스템의 효시 
  • 작업간 전이를 자동적으로 처리 
  • 입출력 제어 시스템 제공 
  • 작업 제어 언어(job control language) 사용 
  • 운영체제의 효시인 IBM 701 시스템 사용


제 2 세대(1960년대)


  • 다중 프로그래밍 시스템, 시분할 시스템, 실시간 처리 시스템의 개념 등장 
  • 고급 수준의 언어로 운영체제 작성 
  • 데이터 통신 지원용 운영체제 사용


제 3 세대(1960년대 중반 ~ 1970년대 중반)


  • 다중 모드 시스템의 개념 등장 
  • 장치의 독립성을 제공 
  • CPU를 작업들간에 수시로 번갈아 할당 
  • 하나의 컴퓨터 시스템에 여러 개의 프로세스들이 사용 
  • IBM S/360, S/370 시스템이 등장 
  • UNIX OS를 개발


제 4 세대(1970년대 중반 ~ 1990년대)


  • 분산처리 시스템의 개념 등장 
  • 가상 기계(virtual machine) 개념 등장 
  • 데이터베이스 시스템 사용 
  • 사용자에게 친숙한 시스템(user friendly system)들이 개발되기 시작 
  • PC 개발이 촉진됨 
  • IBM OS와 UNIX OS가 양립


제 5 세대(1990년대 ~ 현재)

  • 분산처리 시스템이 실용화 
  • 지식 기반 시스템(knowledge base system)이 등장 
  • 인공지능(artificial intelligence)이 실현 
  • 논리, 추론, 유추 기능이 강화 
  • 자연어 인터페이스를 사용하여 인간과 기계간의 대화 기능이 실현 
  • ISDN, 개방형 시스템(open system)이 실현 
  • MACH, OSF(Open Software Foundation), Window NT가 실용화






*이미지는 구글을 활용하였습니다.

운영체제의 관리 대상

<자원 관리(resource management)>





  • 입출력 장치 관리


키보드, 마우스, 모니터, 프린터 등 주변장치

  • 중앙 처리 장치 관리


CPU 스케쥴링

  • 기억장치 관리


주기억장치, 가상 기억장치, 보조 기억장치

  • 파일 시스템 관리


프로그램 파일, 데이터베이스 등





<자원의 관리 및 수행 기능>





  • 자원의 현재 상태 파악


컴퓨터 시스템 내의 모든 자원에 대한 현재의 상태를 파악

  • 자원의 스케쥴링


어떤 상황에서 적절히 대처하기 위한 자원 분배 정책을 결정

  • 자원의 할당


해당 프로세스에게 자원을 할당하고 운영함으로써 결정된 정책을 수행

  • 자원의 회수


프로세스로부터 할당된 자원을 회수














2014. 7. 5.

운영체제의 정의와 목적

<운영체제의 개념>


정의

  1. 컴퓨터 시스템이 제공하는 모든 H/W S/W 기능을 사용할 수 있도록 해 주는 가장 중요한 시스템 소프트웨어
  2. 한정된 시스템 자원(resource)을 효율적으로 사용할 수 있도록 관리 및 운영함으로써 사용자에게 최대한의 편리성 제공
  3. 컴퓨터 시스템과 사용자 간의 인터페이스(interface) 기능을 담당하는 시스템 프로그램


정리

  • 주목적은 사용자가 컴퓨터 시스템(하드웨어)을 편리하게 사용하는데 있다. 
  • 부수적인 목적은 사용자 대신 컴퓨터 시스템을 효율적으로 사용하는데 있다.
  • 운영체제는 자원의 관리자와 중재자의 역할을 동시 수행한다.
    1. 입출력 장치 관리
    2. 중앙 처리 장치 관리
    3. 기억 장치 관리
    4. 파일 시스템 관리
  • 한정된 시스템 자원을 원활하게 사용할 수 있도록 해주는 맨-머신 인터페이스(man-machine interface)



<운영체제의 목적>


목적

  • 사용자 측면 -  컴퓨터 H/W S/W를 최대한 편리하게 사용할 수 있도록 함.
  • 시스템 측면 -  컴퓨터 시스템의 성능을 최적화하여 생산성을 향상 시킴.
  • 운영체제의 설계 - 시스템 성능 측면과 사용자 편의성 측면을 모두 고려하여 적절하게 설계





시스템 측면 - 고려해야 할 성능 요소들



  • 처리율(throughput) : 
일정 시간 내에 컴퓨터 시스템이 처리하는 작업의 양
  • 응답 시간(turnaround time)
사용자가 어떤 작업의 처리를 컴퓨터 시스템에 의뢰하고 나서 그 결과를 산출할 때까지 소요되는 시간
  • 사용 가능성(availability)
컴퓨터 시스템을 각 사용자가 요구할 때, 어느 정도 신속하게 한정된 시스템 자원을 지원해 줄 수 있는가
  • 신뢰성(reliability)
컴퓨터 시스템이 어느 정도 정확하게 동작하는 가를 나타내는 정도


운영체제의 역할


세부 요소

  • 컴퓨터 시스템의 초기화 설정
  • 사용자와 컴퓨터 시스템 간의 편리한 인터페이스 정의
  • 사용자들 간의 하드웨어 공동 사용
  • 다수 사용자 간의 자원 공유
  • 자원의 효율적인 관리를 위한 스케쥴링
  • 입출력에 대한 보조 역할
  • 오류 검사 및 복구
  • 사용자들 간의 간섭 방지
  • 자원의 사용량 계산
  • 병렬 수행을 위한 편의 제공
  • 데이터에 대한 보안과 신속한 사용
  • 통신 네트워크의 관리






2014. 7. 4.

보라매 공원

2014.6.25 보라매공원




보라매 공원 도착





연못







보라매 공원은 예전엔 공군사관학교 였다. 
그래서 그것을 기념하기 위한 것들이 많았다.




큰 길




옛날 현역으로 비행하던 전투기나 헬리콥터들이 전시되어 있다.


블로그 개설

블로그 개설

2014년 7월 4일 금요일 저녁