1장. 운영체제 개요

    목차
728x90

1.운영체제의 개요

  • 컴퓨터 하드웨어와 컴퓨터 사용자 간의 매개체 역할을 하는 시스템 소프트웨어 
  • 프로그램의 실행을 제어하는 소프트웨어 이다!(자원 할당, 스케줄링, 입출력 제어, 데이터 관리 등..)

운영체제 주요 기능(처리 내용 기준!)

  • File Management- 입출력 및 데이터를 관리한다.
  • Job Management- 자원 할당(Memoty, Cpu등..), Job스케줄링
    =>Job(작업):Job이란 사용자가 컴퓨터에 요청한(부여한)일의 단위라고 볼수 있다.
  • Task Management-TASK의 처리 상태를 감시하고 효율적으로 처리한다.
    =>Task(업무):컴퓨터의 처리 단위인 TASK로 분할하여서 JOB을 실행시킨다.  

작업을 수행하는 기준

     =>일괄, 다중 프로그래밍, 시분할 처리 , 다중 처리, 병행 처리 , 분산 처리 등으로 발전하였다.

이 작업 수행 기준은 뒤에 자세히 서술하도록 하겠습니다.


2.운영체제의 역할

  • 운영체제는 컴퓨터 하드웨어와 응용 프로그램 간의 인터페이스 역할을 하며 CPU,메모리와 같은 컴퓨터 자원을 관리하고 사용자에게 편의를 제공해 준다.

3. 운영체제의 목적

  • 편리성: 사용자가 프로그램을 개발하고 사용하는 데 있어서 좀 더 편리한 환경을 제공해준다.
  • 효율성: 자원을 효과적으로 사용하기 위해 각 프로그램을 유기적으로 결합하여서 시스템 전체의 성능 향상=> 뒤에 성능을 향상시키는 방향으로 설계된다.

시스템 성능 평가 기준

  • 처리 능력(Throughput): 시스템의 생산성을 나타내는 대표 지표로 단위 시간당 처리하는 작업량을 말한다. 이 처리 능력이 작을수록 성능이 좋다.
  • 신뢰도 (Reliability):하드웨어(펌웨어), 소프트웨어가 실패 없이 주어진 기능을 수행할 수 있는 능력을 말한다.
  • 응답 시간(Turn around time):사용자가 시스템에 작업을 의뢰한 뒤에 반응을 얻을 때까지의 시간을 말한다.(시분할 방식 시스템과 온라인 시스템에서 사용하는 용어이며 일괄처리 시스템에서는 Turn Around Time)
  • 사용가능도,가능도(Availability): 사용자가 일정 기간 동안 컴퓨터를 실제로 사용한 시간이다.

4. 운영체제의 기능

자원 관리 기능

  • 프로세스 관리(프로세스를 주제로 프로세스의 상태와 변환 관련 기술과 제어 , 스레드, 병행 프로세스 , 교착 상태 , 프로세스 스케줄링의 기능
  • 메모리 관리
  • 보조기억장치 관리
  • 장치 관리
  • 파일 관리
  • 기타 기능

등이 있다.


5. 운영체제의 발달

1. 운영체제 발달 요인

  • 하드웨어의 비약적인 발달
  • 주기억 공간의 대용량화
  • 대용량, 고속의 자기 디스크가 출현: 가상기억 공간 개념
  • 프로세서(CPU)의 처리 속도가 증가
  • 컴퓨터 사용자의 서비스를 요구
  • 시스템 운영자의 서비스를 요구
  • 컴퓨터 프로그래밍 언어의 발전

2. 컴퓨터 출현 초기 (1940~50년대 초기)

  • 사용자가 컴퓨터 하드웨어를 직접 조작
  • 입력장치: 카드 리더
  • 작업 실행을 위한 여러단계를 수작업으로 진행하기 때문에 시스템의 유휴 상태가 길어졌음

3.상주 모니터(Resident Moniter) 개념 출현

  • 컴퓨터 조작원은 프로그래머의 요청에 따라서 작업을 진행시킴. 이에 따른 유휴 시간의 방지를 위하여 다른 작업으로 자동적으로 진행될 수 있도록 주기억 공간에 상주하는 프로그램의 필요성이 대두됨.
  •  컴퓨터 프로그래밍 언어의 발전

4. 버퍼링과 스풀링 개념이 도입됨.

  1. 버퍼링(Buffering)
  • 출현 이유 : 입출력 장치와 CPU간의 처리 속도 차이에서 발생하는 CPU의 대기(유휴) 시간을 최소화하기 위해서 필요하며, CPU의 효율적인 시간 관리를 지향함.
  • 주기억 장치의 일부를 버퍼로 설정함.
  • 실제 입출력은 블록(Block) 단위로 버퍼와 I/O 기기 사이에서 처리됨. 
  •  

버퍼링 개념

   2.스풀링(SPOOLING)

  • 출현 이유 : 시스템이 보유하고 있는 유한한 개수의 입출력 장치의 사용을 원할하게 하며, 입출력 장치의 사용을 원하는 사용자에 대한 지원을 용이하게 함.
  • 자기 디스크의 일부를 [스풀] 영역으로 사용함
  • 주기억 장치와 입출력 장치를 직접 연결하지 않고, 그 사이에 [스풀]을 위치시킴.
  •  

스풀링 개념

 

5. 다중 프로그래밍 개념의 도입

-> 왜 나왔을까?

  • single user 시스템인 경우, 자원의 낭비가 심해진다.
  • 특히, 저속의 입출력 장치와 고속의 CPU인 경우 , I/O 를 하는 동안에는 CPU가 쉬게(놀게?) 되는 문제점이 발생한다.

-> 방안

  • 하나의 작업이 I/O를 하는 동안 , 다른 작업이 CPU를 사용(쓸)할 수 있도록 여러 개의 프로그램을 주기억 공간에다가 적재 시킴=> 이게 바로 다중 프로그래밍(Multiprogramming)이다.
  • 여러 개의 프로그램을 적재할 수 있는 충분한 기억공간을 가진다.
  • 입출력 작업을 독립적으로 수행할 수 있는 방안을 강구한다. (I/O 프로세서 또는 Channel개념 등..)
  • 뒤에 나올 교착 상태(deadlock) 처리 방법이기도 하다
  • 마찬가지로 뒤에 나올 인터럽트(Interrupt) 개념 도입등등...

6. 운영체제의 유형

운영체제 운영 기법

  • 일괄 처리 시스템(Batch Processing System)
  • 다중 프로그래밍 시스템(Multi-Programming System)
  • 시분할 시스템(Time Sharing System)
  • 다중 처리 시스템(Multi-Processing System)
  • 실시간 처리 시스템(Real Time Processing System)
  • 다중 모드 처리 시스템(Multi -Mode Processing System)
  • 분산 처리 시스템(Distributed Processing System)

등이 있으며 이들은 작업 수행하는 방식에 따라 다르다.

발달과정은 일괄처리-> 다중프로그래밍,다중처리,시분할,실시간-> 다중 모드-> 분산처리시스템 순이다.

 

 일괄처리 시스템

  • 초기의 컴퓨터 시스템에서 사용된 형태, 한꺼번에 처리하는 방식이다.
  • 컴퓨터 시스템을 효율적으로 사용할 수 있다.
  • 급여 계산, 지불 계산, 연말 결산 등의 업무에서 사용

일괄처리 시스템
유휴시간이 상당히 많이 남게 된다..

 

다중 프로그래밍

  • 하나의 CPU와 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식이다.
  • 하나의 주기억 장치에 2개 이상의 프로그램을 기억시켜 놓고, 하나의 CPU와 대화하면서 동시에 처리함

다중 프로그래밍
일괄처리보다는 적지만 아직도 유휴시간은 있다..

 

시분할 시스템

  • 다중 프로그래밍 방식과 결합하여 모든 작업이 동시에 진행되는 것처럼 대화식 처리가 가능함
  • 하나의 CPU는 같은 시점에서 여러 개의 작업을 동시에 수행할 수 없기 때문에, CPU의 전체 사용 시간을 작은 작업 시간량(Time Slice) 으로 나누어서 그 시간량 동안만 번갈아 가면서 CPU를 할당하여 각 작업을 처리함.

시분할 시스템

 

다중 처리 시스템

  • 여러 개의 CPU와 하나의 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식이다.
  • 하나의 CPU가 고장나더라도 다른 CPU를 이용하여 업무를 처리할 수 있으므로 시스템의 신뢰성과 안정성이 높다.

실시간 처리 시스템

  • 데이터가 발생하는 즉시, 또는 데이터 처리 요구가 있는 즉시 처리하여 결과를 산출하는 방식이다.
  • 우주선 운행, 레이더 추적기, 핵물리학 실험 및 데이터 수집 등등..시간에 제한을 두고 수행되어야 하는 작업에 사용되는 시스템이다.

 다중 모드 처리

  • 일괄 처리 시스템, 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템을 한 시스템에서 모두 제공하는 방식이다.

분산 처리 시스템

  • 여러 개의 컴퓨터(프로세서)를 통신 회선으로 연결하여서 하나의 작업을 처리하는 방식
  • 각 단말 장치나 컴퓨터 시스템은 고유의 운영체제와 CPU, 메모리를 가지고 있다.


7.운영체제의 기능

  • 운영체제는 프로그램을 실행하는데 필요한 환경과 자원을 제공하고 관리하기 위한 크고 복잡한 시스템이다.
  • 논리적으로 작은 모듈로 구성되며 각 부분은 명확하게 정의되어있다.
  • 대부분의 시스템은 자원 관리와 프로그램을 위한 인터페이스 역할을 수행한다.

자원 관리 기능

  • 대부분 메모리 , 프로세스 ,장치 ,파일 등의 시스템
  • 구성 요소를 제공하며 이를 자원이라고 하며, 운영체제는 이런 자원을 관리하는 역할을 수행한다.

프로세스 관리

  • 프로세스를 주제로 프로세스의 상태와 변환 관련 기술과 제어, 스레드 ,병행 프로세스 , 교착 상태, 프로세스 스케줄링의 기능

메모리 관리

  • 현재 메모리의 어느 부분이 사용되고 , 누가 사용하는 지를 점검하는 기능이다.
  • 기억 공간에 어떤 프로세스를 저장할 지 결정하는 기능
  • 기억 공간을 할당하고 회수하는 방법을 결정하는 기능이다.

보조기억장치 관리

  • 메인 메모리의 공간이 제한적이므로 컴퓨터 시스템은 보조기억장치를 이용해 메인 메모리의 내용을 저장한다.
  • 디스크 관리를 위해 비어 있는 공간 관리, 저장 장소 할당, 디스크 스케줄링이 가능하다.

장치 관리

  • 입출력 시스템을 관리하기 위해 임시 저장 시스템, 일반적인 장치 드라비어 인터페이스, 특정 하드웨어 장치를 위한 드라이버 기능등이 있다.

파일 관리

  • 파일과 디렉터리의 생성과 제거, 보조기억장치에 있는 파일의 맵핑, 안전한(비휘발성) 저장 매체에 파일 저장하는 기능

기타 기능

  • 시스템 보호, 네트워킹, 명령어 해석기와 시스템 관리 기능

8. 운영체제의 구성

커널(Kernel)

  • OS의 핵심부분 (booting 후에 Memory에 상주한다.)
  • 사용자 및 실행 프로그램들을 위해 빈번히 사용되는 기능을 담당한다.
  • 주로 자원의 관리기능을 한다.

유틸리티 프로그램(Utility programs)

  • 비상주 프로그램, 서비스 프로그램
  • 주로 사용자 인터페이스 기능이다.

9.운영체제의 자원 관리

걍 외우자..


1장 운영체제를 정리해 보았다.

너무 많고 많아서 그동안 임시저장으로 했다가 드디어 올리는거같다. 2장,3장,4장까지 빠르게 올리는게 목표인데 그림이랑 사진이 너무 많아서 좀 많이 힘들거같다.. 

728x90

'운영체제' 카테고리의 다른 글

3장. 기억장치 관리(1)  (0) 2023.04.26
2장. 프로세스 관리(3)  (0) 2023.04.26
2장.프로세스 관리(2)  (0) 2023.04.26
2장. 프로세스 관리(1), (어셈블러,링커,로더)  (0) 2023.04.24
0장. 컴퓨터시스템개요  (0) 2023.04.24