운영체제

컴퓨터 시스템의 자원들을 효율적으로 관리 ( 자원관리 )
사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공 ( 사용자 인터페이스 제공 )
  • 성능 평가 기준
처리능력
(Throughput)
일정 시간 내에 시스템이 처리하는 일의 양
반환시간
(Turn Around Time)
시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지
걸린 시간
사용 가능도
(Availablity)
시스템을 사용할 필요가 있을 때 즉시 사용가능한 정도
신뢰도
(Reliablity)
 
운영체제 목적 4가지
- 처리능력 향상
- 반환시간 단축
- 사용 가능도 향상
- 신뢰도 향상

 

Windows의 특징

  • 그래픽 사용자 인터페이스(GUI: Graphic User Interface) 실기기출
    : 키보드로 명령어를 직접 입력하지 않고, 마우스로 아이콘이나 메뉴를 선택하여 모든 작업을 수행하는 방식
  • 선점형 멀티태스킹(Preemptive Muti-Tasking)
    : 멀티태스킹을 하면서 운영체제가 각 작업의 CPU 이용 시간을 제어하여 용용 프로그램 실행중 문제가 발생하면
    해당 프로그램을 강제 종료시키고 모든 시스템 자원을 반환하는 방식
  • PnP(Plug and Play, 자동 감지 기능)
    : 컴퓨터 시스템에 프린터나 사운드 카드 등의 하드웨어를 설치했을 때, 해당 하드웨어를 사용하는 데 필요한
    시스템 환경을 운영체제가 장동으로 구성해 주는 기능
  • OLE(Object Linking and Embedding)
    : 다른 여러 응용 프로그램에서 작성된 문자나 그림 등의 개체(Object)를 현재 작성 중인 문서에 자유롭게
    연결(Linking) 하거나 삽입(Embedding) 하여 편집할 수 있게 하는 기능

 

UNIX / LINUX

  • UNIX
    • 1960년, 벨(Bell)연구소, MIT, General Electric이 공동 개발한 운영체제
    • 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제,
      소스가 공개된 개방형 시스템(Open System)
    • 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다.
    • 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원
    • 트리(Tree) 구조의 파일 시스템을 갖는다.
  • LINUX
    • 1991년, 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제
    • UNIX와 완벽하게 호환되고, 대부분의 특징이 UNIX와 동일하다.
    • 프로그램 소스 코드가 무료로 공개되어 있다.

 

UNIX 시스템의 구성

  • 커널(Kernel)
    • UNIX의 가장 핵심적인 부분
    • 하드웨어를 보호(캡슐화)하고, 프로그램들과 하드웨어간의 인터페이스 역할을 담당
    • 프로세스, 기억장치, 파일, 입출력 관리, 프로세스 간 통신, 데이터 전송 및 변환 등 여러 기능 수행
    • 컴퓨터 부팅 시 주기억장치에 적재되어 상주하면서 실행
  • 쉘(Shell)
    • 사용자으 명령어를 인식하여 프로그램을 호출하고, 명령을 수행하는 명령어 해석기
    • 시스템과 사용자 간의 인터페이스를 담당
    • DOS의 COMMAND.COM과 같은 기능을 수행
    • 주기억장치에 상주하지 않고, 명령어가 포함된 파일형태로 존재하며 보조기억장치에서 교체 처리가 가능
    • 종류 : Bourne Shell, C Shell, Korn Shell 등

 

Windows 의 CLI(Command Line Interface) 명령어

dir
실기기출
현재 디렉터리의 파일 목록 표시 (UNIX / LINUX의 ls와 동일)
copy 파일 복사
del 파일 삭제
type 파일 내용 표시
ren 파일 이름 변경
md 디렉터리 생성
cd 동일한 드라이브에서 디렉터리 위치 변경
cls 화면 내용 지움
attrib 파일 속성 변경
find 파일에서 문자열 찾음
chkdsk 디스크 상태 점검
format 디스크 표면을 트랙과 섹터로 나누어 초기화
move 파일 이동

 

UNIX / LINUX 의 CLI(Command Line Interface) 기본 명령어

cat 파일 내용을 화면에 표시
cd 디렉터리 위치 변경
chmod 파일의 보호 모드를 설정하여 파일 사용 허가 지정
chown 파일 소유자와 그룹 변경
cp 파일 복사
rm 파일 삭제
find 파일 찾음
fsck 파일 시스템 검사 및 보수
kill PID(Process ID, 프로세스 고유번호) 이용하여 프로세스 종료
killall 프로세스의 이름을 이용하여 프로세스 종료
ls 현재 디렉터리의 파일 목록 표시 ( Windows의 dir 와 동일 )
mkdir 디렉터리 생성
rmdir 디렉터리 삭제
mv 파일 이동
ps 현재 실행중인 프로세스 표시
pwd 현재 작업중인 디렉터리 경로를 화면에 표시
top 시스템의 프로세스와 메모리 사용 현황 표시
who 현재 시스템에 접속해 있는 사용자 표시

 

기억장치 관리 전략

보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여
한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것
  • 반입(Fetch) 전략
    : 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인가 ?
    1. 요구 반입(Demand Fetch), 2. 예상 반입(Anticipatory Fetch)가 있다.
  • 배치(Placement) 전략 ( 예제 중요 )
    : 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인가 ?
    • 최초 적합(First Fit)
      : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번재 분할 영역에 배치
    • 최적 적합(Best Fit)
      : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치
    • 최악 적합(Worst Fit)
      : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치

 

  • 교체(Replacement) 전략 ( 예제 중요 )
    : 주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할때
    이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인가 ?


    [ 종류 ] : FIFO, OPT, LRU, LFU, NUR, SCR 등이 있다. 

 

가상 기억장치(Virtual Memory)

보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 것으로, 용량이 작은 주기억장치를 마치 큰 용량을
가진 것처럼 사용하는 것. 현재 운영체제에서 흔히 사용하는 기법
  • 가상 기억장치 구현 기법
    • 페이징 기법(Paging)
      : 가상 기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후
      나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법
      외부 단편화는 방생하지 않으나 내부 단편화는 발생할 수 있다.
    • 세그먼테이션 기법(Segmentation)
      : 가상 기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후
      주기억장치에 적재시켜 실행시키는 기업
      내부 단편화는 발생하지 않으나, 외부 단편화는 발생할 수 있다.

 

가상기억장치 기타 관리 사항

  • Locality(지역성)
    • 프로세스가 실행되는 동안 주기억장치를 참조할 때, 일부 페이지만 집중적으로 참조하는 성질
      • 1. 시간 구역성(Temporal Locality)
        : 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스하는 현상
      • 2. 공간 구역성(Spatial Locality)
        : 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스하는 현상
  • 워킹 셋(Working Set)
    : 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
  • 페이지 부재(Page Fault)
    : 프로세스 실행 시 참조할 페이지가 주기억장치에 없는 현상. 페이지 부재가 일어나는 횟수를
    페이지 부재빈도(Page Fault Frequency) 라고 함
  • 스레싱(Thashing)
    : 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상

 

페이지 교체 알고리즘

  • OPT(optmal replacement, 최적 교체)
    : 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
  • FIFO(First In First Out)
    : 각 페이지가 주기억장치에 적재될 때마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던
    페이지를 교체하는 기법
  • LRU(Least Recently Used)
    : 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법
  • LFU(Least Frequently Used)
    : 사용 빈도가 가장 적은 페이지를 교체하는 기법
  • NUR(Not Used Recently)
    : 최근에 사용하지 않은 페이지를 교체하는 기법, 참조 비트(Reference Bit)와 변형 비트(Modified Bit)가 사용
  • SCR(Second Chance Replacement, 2차 기회 교체)
    : 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 것으로
    FIFO기법의 단점을 보완한 기법

 

프로세스(Process) 관리

프로세스는 프로세서(CPU)에 의해 처리되는, 실행중인 프로그램을 의미
  • 프로세스 상태 전이
제출( Submit ) 작업을 처리하기 위해 사용자가 작업을 시스템에 제출 상태
접수( Hold ) 제출된 작업이 스풀 공간인 디스크의 할당위치에 저장된 상태
준비 ( Ready ) 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
실행 ( Run ) 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행
대기 ( Wait )
블록 ( Block )
프로세스에 입출력 처리가 필요하면 현재 실행중인
프로세스가 중단되고 입출력 처리가 완료될 때까지 대기
종료 ( Terminated Exit ) 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태
  • 프로세스 상태 전이 관련 용어
Dispatch 준비상태에서 대기하고 있는 프로세스 -> 실행상태로 전이
Wake Up 프로세스가 대기상태에서 -> 준비 상태로 전이
Spooling 입출력장치의 공유 및 상대적으로 느린 입출력장치의
처리속도를 보완하고 다중프로그래밍 시스템의 성능을
향상시키기 위해 입출력 데이터를 나중에 한꺼번에
입출력하기 위해 디스크에 저장하는 과정

 

비선점(Non-Preemptive) 스케줄링

이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케쥴링 기법
  • FCFS( First Come First Service, 선입선출 ) = FIFO( First In First Out )
    : 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법, 가장 간단한 알고리즘
  • SJF( Shortest Job First, 단기 작업 우선 )
    : 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU 할당하는 기법
  • HRN ( Hihgest Response-ratio Next )
    : 실행 시간이 긴 프로세스에 불리한 SJF 기법 (기아현상) 을 보완하기 위한 것
    대기 시간과 서비스(실행)시간을 이용하는 기법

    * 우선순위 계산식 : ( 대기시간 + 서비스 시간 ) / 서비스 시간 실기기출
  • 기한부( Deadline )
    : 프로세스에게 일정한 시간을 주어 그 시간 안에 프로세스를 완료하도록 하는 기법
  • 우선순위 ( Priority )
    : 준비상태 큐에서 기다리는 각 프로세스마다 우선순위를 부여하여 그 중 가장 높은 프로세스에게 먼저 CPU를 할당
  • 에이징 기법 ( Aging )
    : 시스템에서 특정  프로세스의 우선순위가 낮아 무한정 기다리게 되는 경우, 한 번 양보하거나 기다린 시간에
    비례하여 일정 시간이 지난면 우선순위를 한 단계씩 높여 가까운 시간 안에 자원을 할당받도록 하는 기법

 

선점( Preemptive ) 스케줄링

하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로
빼앗아 사용할 수 있는 스케줄링 기법
  • 선점 우선순위
    : 준비상태 큐의 프로세스들 중에서 우선 순위가 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법
  • SRT( Shortest Remaining Time )
    : 비선점 스케쥴링인 SJF( Shortest Job First )기법을 선점 형태로 변경한 기법, 선점 SJF 기법이라고도 함
  • 라운드 로빈( RR : Round Robin )
    : 시분할 시스템( Time Sharing System )을 위해 고안된 방식으로, FCFS 기법과 같이 준비상태 큐에 먼저 들어온
    포세스가 먼저 CPU를 할당받지만 각 프로세스는 시간 할당량(Time Slice, Quantum) 동안만 실행한 후 실행이
    완료되지 않으면 다음 프로세스에게 CPU를 넘겨주고 준비상태큐의 가장 뒤로 배치됨
  • 다단계 큐 ( MQ : Multi-level Queue )
    : 프로세스를 특정 그룹으로 분류할 수 있을 경우 그룹에 따라 각기 다른 준비상태 큐를 사용하는 기법
  • 다단계 피드백 큐 ( MFQ : Multi-level-Feedback Queue ) 
    : 특정 그룹의 준비상태 큐에 들어간 프로세스가 다른 준비상태 큐로 이동할 수 없는 다단계 큐 기법을
    준비상태 큐 사이를 이동할 수 있도록 개선한 기법

 

교착상태( Dead Lock )

상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가
점유하고 있는 자원을 요구하며 무한정 기다리는 현상
  • 교착상태 발생의 필요 충분 조건
    • 1. 상호 배제( Mutual Exclusion )
      : 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함
    • 2. 점유와 대기( Hold and Wait )
      : 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로
      점유하기 위해 대기하는 프로세스가 있어야 함
    • 3. 비선점( Non-Preemption )
      : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함
    • 4. 환영 대기( Circular Wait )
      : 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게
      할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함

교착상태 해결 방법

교착상태가 발생하지 않도록 사전에 시스템을 제어하는 방법으로 네 가지 조건 중에서
어느 하나를 제거(부정)함으로써 수행된다.
  • 예방 기법( Prevention )
    • 상호 배제( Mutual Exclusion ) 부정
      : 한 번에 여러 개의 프로세스가 공유 자원을 사용할 수 있도록 함
    • 점유 및 대기( Hold and Wait ) 부정
      : 프로세스가 실행되기 전 필요한 모든 자원을 할당하여 프로세스 대기를 없애거나 자원이 점유되지 않은
      상태에서만 자원을 요구하도록 함
    • 비선점( Non-Preemption ) 부정
      : 자원을 점유하고 있는 프로세스가 다른 자원을 요구할 때 점유하고 있는 자원을 반납하고
      요구한 자원을 사용하기 위해 기다리게 함
    • 환형 대기( Circular Wait ) 부정
      : 자원을 선형 순서로 분류하여 고유 번호를 할당하고, 각 프로세스는 현재 점유한 자원의 고유 번호보다
      앞이나 뒤 어느 한쪽 방향으로만 자원을 요구하도록 하는 것
  • 회피 기법( Avoidance )
    : 교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생하면 적절히 피해나가는 방법
    주로 은행원 알고리즘( Banker`s Algorithm ) 이 사용된다.
  • 발견 기법( Detection )
    : 시스템에 교착 상태가 발생했는지 점검하여 교착 상태에 있는 프로세스와 자원을 발견하는 것
    자원 할당 그래프 등을 사용한다.
  • 회복 기법( Recovery )
    : 교착상태를 일으킨 프로세스를 종료하거나 교착상태의 프로세스의 할당된 자원을 선점하여
    프로세스나 자원을 회복
728x90
반응형

+ Recent posts