[정처기 실기] 「3」 | 운영체제 - (3.2) 운영체제(2)

728x90

[정처기 실기] 3」 | 운영체제 - (3.2) 운영체제(2)

「1」 소프트웨어 구축

「2」 데이터베이스 구축

> 「3운영체제

4네트워크

「5정보보안

「6」 신기술 용어

 

> 1. 운영체제

1. 운영체제

프로세스

프로세스

○ 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램

○ 스레드(Thread) : 프로세스 내에서 실행되는 흐름의 단위

  - 사용자 수준의 스레드(속도 빠르고 구현 어려움), 커널 수준의 스레드(속도 느리고 구현 쉬움)

○ 메모리상의 프로세스 영역

  - 코드 영역 : 실행할 프로그램의 코드가 저장

  - 데이터 영역 : 전역 변수와 정적 변수

  - 스택 영역 : 지역 변수와 함수의 매개변수

  - 힙 영역 : 동적 할당

○ 프로세스 상태 전이

 생성 
 (New) 
준비
(Ready)
Dispatch
  
  
Time Run out
실행
(Run)
 종료 
 (Exit) 
      
입 / 출력 종료 깨움
(Wake Up)
                
      
입 / 출력 발생
          
   
      대기
(Wait, Block)
     

○ PCB(Process Control Block, 프로세스 제어 블록) : 운영체제가 프로세스의 정보를 저장하는 공간

 문맥 교환(Context Switching) : CPU 사용을 마치고 다른 프로세스가 CPU를 사용하도록 전환하는 과정

 

프로세스 스케줄링

○ 스케줄링(Scheduling) : 메모리에 올라온 프로세스들 중 어느 프로세스를 먼저 처리할지 순서를 정하는 것

○ 스케줄링의 목적

  - 공평성

  - 효율성 

  - 안정성

  - 반응 시간 보장

  - 무한 연기 방지

○ 스케줄링 기법

  - 선점형 스케줄링(Preemptive) : 운영체제가 실행 중인 프로세스로부터 CPU를 강제로 빼앗음, 높은 오버헤드

    : Round Robin, SRT, MLQ, MLFQ

  - 비선점형 스케줄링(Non-Preemptive) : 프로세스가 CPU 점유할 때 빼앗을 수 없음, 낮은 처리율

    : FCFS, SJF, HRN, 우선순위, 기한부

  - 기아현상과 에이징 기법

    : 기아현상(Starvation) - 우선순위가 낮은 프로세스가 무한정 기다리는 현상 / SRT, MLQ, SJF, 우선순위

    : 에이징 기법(Aging) - 기아현상을 해결하기 위한 기법 / MLFQ, HRN

 

스케줄링 알고리즘

○ 선점형 기법

  - Round Robin : 시간 단위를 정하여 순서대로 CPU에 할당

  - SRT(Shortest Remaining Time) : 실행 시간이 가장 짧은 프로세스에 CPU 할당

  - 다단계 큐(MLQ, Multi-Level Queue) : 그룹에 따라 다른 준비 상태 큐를 사용하는 기법

  - 다단계 피드백 큐(MLFQ, Multi-Level Feedback Queue) : 가장 높은 우선순위의 준비 큐에 등록

○ 비선점형 기법

  - FCFS(First Come First Serve) : 먼저 도착한 프로세스를 먼저 처리

  - SJF(Shortest Job First) : 실행 시간이 짧은 프로세스에게 CPU 할당

  - HRN(Highest Response ratio Next) : 우선순위 = (대기시간 + 실행시간) / 실행시간

  - 우선순위(Priority) : 프로세스에 우선순위를 부여

  - 기한부(Deadiline) : 일정한 시간을 주어 그 시간 안에 작업을 완료하도록 하는 기법

 

병행 프로세스와 교착상태

병행 프로세스

두 개 이상의 프로세스가 동시에 존재하며 실행 상태에 있는 것

문제점과 해결책

  - 문제점 : 동시에 여러 프로세스를 처리할 때 한정된 자원에 대한 사용 순서 등 문제 발생 가능

  - 해결책

    : 임계 구역 - 한 번에 하나의 프로세스만 접근할 수 있도록 지정된 영역

    : 상호배제 기법 - 공유 공간을 사용 중일 때 사용하지 못하도록 하는 제어 기법

    : 동기화 기법 - 하나의 자원에 대한 권한 / 순서를 조정해 주는 기법

 

병행 프로세스 문제 해결책

○ 상호 배제(Mutual Exclusion) 기법

  - 데커의 알고리즘(Dekker's Algorithm)

  - 피터슨의 알고리즘(Peterson's Algorithm)

  - 다익스트라 알고리즘(Dijkstra Algorithm)

  - 램포트의 베이커리 알고리즘(Lamport's Bakery Algorithm)

○ 동기화 기법

  - 세마포어(Semaphore) : 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법

    : 계수 세마포어, 이진 세마포어

  - 모니터(Monitor) : 프로그래밍 언어 수준에서 동시성을 제어하는 상호 배제 기법

 

교착상태(Dead Lock)

상호 배제에 의해 나타나는 문제점으로 여러 프로세스가 자원을 점유한 상태에서 서로 다른 프로세스를 요구하며 무한정 기다리는 현상

○ 교착상태 발생 조건

  - 상호배제(Mutual Exclusion) : 한 번에 한 개의 프로세스만이 공유 자원을 사용

  - 점유와 대기(Hold & Wait) : 자원을 점유하며 다른 프로세스의 자원을 요구

  - 비선점(Nonpreemption) : 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없음

  - 환형대기(Circular Wait) : 순차적으로 다음 프로세스가 요구하는 자원을 가지고 있는 상태

○ 교착상태 해결 방법

  - 예방 기법(Prevention) : 4가지 조건 중 하나 이상을 사전에 제거하여 예방

  - 회피 기법(Avoidance) : 발생된 교착상태, 은행가 알고리즘(모든 고객의 요구가 충족되도록)

  - 발견 기법(Detection) : 교착상태에 있는 프로세스 / 자원을 발견, 점검

  - 회복 기법(Recovery) : 교착상태 유발 프로세스 종료, 프로스세스 내 할당된 자원을 선점

 

디스크 스케줄링(Disk Scheduling)

디스크 스케줄링

○ 하드 디스크에 저장된 데이터에 접근하기 위해 디스크 헤드의 움직임을 최적화하는 기법

○ 디스크 스케줄링 종류

  - FCFS(First Come First Served) : 요청이 들어온 순서대로 처리

  - SSTF(Shortest Seek Time First) : 현재 헤드에서 가장 가까운 트랙의 요청을 처리

  - SCAN : 헤드가 진행 방향에 있는 요청을 처리하고 반대 방향으로 틀어 반대 방향의 요청들을 처리

  - C-SCAN :  항상 한 방향에서 반대 방향으로 진행하며 트랙의 요청들을 처리

  - LOOK : SCAN 기법을 기초로 하며, 진행 방향의 마지막 요청을 처리한 후 반대 방향으로 처리

  - C-LOOK : C-SCAN 기법을 기초로 하며, 한 쪽 방향의 요청을 처리한 후 반대쪽 끝으로 이동 후 다시 한쪽 처리

  - N-STEP SCAN : SCAN 기법을 기초로 하며, 대기 중인 요청을 우선적으로 처리, 처리 과정 중 들어오는 요청은 이후 진행 시 처리

  - 에션바흐(Eschenbach) : 부하가 큰 항공 예약 시스템을 위해 개발된 기법, 탐색 시간과 회전 지연 시간을 최적화 

 

환경변수와 로그 파일

환경변수

○ 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임

○ Unix / Linux 환경변수 : env, set, printenv, export

 

로그 파일

○ 로그 : 시스템의 모든 기록을 담고 있는 데이터

○ 리눅스 로그 종류

  - messages : 시스템 로그 파일

  - secure : 보안 인증에 관한 메시지 로그 파일

  - maillog : 메일 로그 파일 

  - xferlog : ftp 로그 파일

  - dmesg : 부팅 시의 시스템 로그

  - wtmp : 전체 로그인 기록

  - utmp : 현재 로그인 사용자 기록

  - btmp : 로그인 실패 정보 기록

  - lastlog : 최근 로그인 기록

 

스토리지

스토리지(Storage)

○ 데이터를 저장하는 저장소로, 컴퓨터 시스템의 부품

스토리지 종류

  - DAS(Direct Attachted Storage) : PC나 서버에 직접 연결

  - NAS(Network Attached Storage) : LAN을 통해 서버와 연결

  - SAN(Storage Area Network) : 파이버 채널 스위치를 통해 연결

○ RAID(Redundant Array of Inexpensive Disks) : 복수의 HDD를 하나의 드라이브로 인식하고 사용

  - RAID의 구성 

    : 스트라이핑(Striping) - 연속된 데이터를 여러 디스크에 라운드-로빈 방식으로 저장

    : 미러링(Mirroring) - 데이터를 동일하게 복제해 신뢰성을 확보

  - RAID의 형태

    : RAID-0 - 스트라이핑 사용

    : RAID-1 - 미러링 사용

    : RAID-2 - 오류 정정을 위한 해밍코드 사용

    : RAID-3 - 한 디스크를 패리티 정보 저장용으로 사용

    : RAID-4 - RAID-3과 유사하나 블록 단위 분산 저장

    : RAID-5 - 각 디스크에 패리티 정보를 포함

    : RAID-6 - 두 개의 패리티 정보를 디스크에 분산 저장

 

 

 

 

 

 

 

출처 | 흥달쌤

728x90