본문 바로가기
정보처리기사

11. 응용 SW 기초 기술 활용 - Chap 1. 운영체제의 특징

by Elin J 2021. 6. 30.

Chapter 1. 운영체제의 특징

1. 운영체제의 종류

 1) 운영체제(OS:Operating System)의 특징★
  사용자 편리성 제공(관리 및 운영) / 인터페이스 기능 담당(컴퓨터 시스템과 사용자 연결)

 / 스케쥴링 담당 / 자원관리(CPU, 메모리 공간, 기억장치 등 관리) / 제어기능(입출력장치와 사용자 프로그램 제어)

 

  * 쉘(Shell) : 운영체계 바깥부분 -> 사용자 명령에 대한 처리 담당 (커널에 전달, 명령어 해석기)

    커널(Kernel) : 하드웨어 관련 내부적인 역할 담당 (운영체제 핵심 기능)

 

  * 유닉스 운영체제 : 1960년 AT&Bell연구소, MIT 및 ~사가 공동 연구, 개발

               초기 운영체제는 Multics이고 C언어로 재이식되어 대중화 기반 마련
  2) 유닉스 운영체제 특징★ ---> 대다 사이계
    대화식 운영체제 기능 / 다중 작업 기능 / 다중 사용자 기능 / 이식성 / 계층적 트리구조 파일 시스템

 

 3) 리눅스 기반 운영체제 : 유닉스의 호환 커널, 1991년 리누스 토발즈는 프리 소프트웨어 정책을 가지고,

              자유롭고 재배포가 가능한 운영체제인 리눅스 개발

 

  * 유닉스와    리눅스 차이점

     서버             pc

     상용            무료

  사업자 배포   오픈 소스 개발   

 

4) 맥 운영체제 / 안드로이드 운영체제 

 

리눅스/유닉스 파일 접근제어 메커니즘

* 접근 권한 유형 (설정 명령어 : chwon, chgrp) 

    --> 유그아 : user, group, other

* 접근 권한 변경 (chmod)

    유그아에 따라 read 4 , writer 2, x(실행) 1

 

 

 

2. 운영체제 기본 명령어 활용

  1) 리눅스/유닉스 기본 명령어
  cat , last, who, pwd, ps, kill pid, fork, chmod, chowm, host, grep, find, du

 2) 리눅스/유닉스 파일 접근제어 메커니즘
  - 접근 권한 유형 (설정 명령어 : chown, chgrp)
    유저 / 그룹 / 아더
 
  - 파일 접근 모드 (설정 명령어 : chmod)
   R : 4  /   W : 2  /  X : 1

 


3. 운영체제 핵심 기능 파악(1)

* 운영체제 핵심 기능 

   : 중앙처리장치(CPU), 메모리, 스토리지, 주변 기기 등을 적절히 관리,

     초기에는 메모리 용량 제한 많아 메모리 관리 중요했으나 최근엔 운영체제에서 자동관리로 사용 편리

   : 메모리 관리 / 프로세스 관리

 

* 메모리(기억장치, 주기억장치) 관리 - 하드디스크/메모리(DRAM)/캐시(SRAM)/레지스터(CPU)

  : 기억장치를 관리하는 운영체제의 일부,

     프로세스에게 필요할 때마다 기억장치 할당하고 사용 끝나면 회수,

     디스크와 주기억장치간에 프로세스 교체 작업 관리

 

* 메모리 관리 기법 --> 반배할교 

  : 반입기법 : 적재될때 어느시기를 택할것인가 결정 (When) - 요구 반입 / 예상 반입 기법

    배치기법 : 어느 위치에 저장할것인지(Where) --> 초적악 : 최초/최적/최악 적합

    할당기법 : 메모리 적재 방법 결정(How) --> 연단다 분페세

           - 연속할당 기법(단일 분할 할당 / 다중 분할 할당)  

           - 분산 할당 기법(페이징 기법(동일크기)/ 세그먼테이션 기법(가변크기)/ 페이징-세그멘테이션 기법)

    교체비법 : 메모리 교체 대상 결정 (Who) - FIFO, LRU, LFU, OPT, NUR, SCR 등

             

 

  * 논리 주소 : CPU에 의해 생성, 가상 주소

    물리 주소 : 실제 메모리 유닛(HW)에서 사용되는 주소

  * 가상메모리, 물리 메모리 

  * 주소 사상 기법(=주소 변환 기법) : 가상 주소(논리 주소)로부터 물리 주소 찾는 방법

 

 * 내부 단편화 : 분할된 공간에 프로세스를 적재한 후 남은 공간,

                      페이징 기법 사용 시 발생하는 메모리 단편화

      - 해결 방안 : Slab Allocator(사전에 작게 분할 해놓고 요청시 할당), 통합, 압축

 * 외부 단편화 : 할당된 크기가 프로세스 크기보다 작아서 사용하지 못하는 공간,

                     세그멘테이션 기법 사용 시 발생하는 메모리 단편화

     - 해결 방안 : 버디 메모리 할당(1/2씩 줄여가면서 할당), 통합, 압축

 

 

 * 페이징 기법의 문제점 -스레싱(Thrashing)

   : 프로세스의 실제 처리 시간 보다 페이지 교체 시간이 더 많아지는 현상,

     페이지 부재가 계속 증가하여 기억장치 접근 시간이  증가

 => 프로세스들 간의 메모리 경쟁으로 지나치게 페이지 폴트 발생, 전체 시스템 성능 저하

 

* 페이징 기법의 문제점 해결 방안

   - 워킹 세트 : 많이 참조하는 페이지를 주기억장치에 계속 상주시켜 빈번한 페이지 교체 줄인다

   - 페이지 부재 빈도(PFF) : 페이지 부재율의 상한과 하한을 정해서 직접적으로 페이지 부재율 예측하고 조절

 

 

 * 지역성(Locality) : 주기억장치 참조할 때 일부 페이지만 집중적으로 참조하는 특성

   지역성의 유형 --> 시 공 순 

          : 시간 지역성 / 공간 지역성 / 순차 지역성 

 

 

 

3. 운영체제 핵심 기능 파악(2)

 

*프로세스(Process) : CPU에 의해 처리되는 사용자 프로그램, 시스템 프로그램,

        즉 실행중인 프로그램을 의미, 작업(job) 또는 태스크(Task)라고 함

 

1) 프로세스 상태★ ---> 생,준,실,대,완
  생성 상태 / 준비 상태 / 실행 상태 / 대기 상태 / 완료 상태

 Create       Ready       Running      Waiting      Exit, Complete

 

 * 프로세스 상태 전이 --> 디 타 블 웨

    디스패치(Dispatch) / 할당 시간 초과(Timeout) / 입출력 발생(Block) / 깨움(Wake -up)

 

 * 프로세스 구성 : 사용자 작성 코드 / 사용자 사용 데이터 / 스택 / 프로세스 제어 블록(PCB)

    ㄴPCB 구성 요소 --> 프상카레 스계입메

        : PID(프로세스 식별자) / 프로세스 상태 / 프로그램 카운트 / 레지스터 저장 영역 

             /프로세서 스케줄링 정보 / 계정 정보 / 입출력 상태 정보 / 메모리 관리 정보

 

  * 스레드(Thread) : 제어의 흐름이며, 실행 단위,

                       한개의 프로세스는 여러개의 스레드 가질 수 있음 

 

 < 프로세스 스케줄링 >

    : 서비스 시간 / 응답 시간 / 평균 응답 시간 / 대기 시간 / 평균 대기 시간 / 종료 시간 / 시간 할당량

        / 응답률 :  (대기시간 + 서비스 시간) / 서비스 시간

   

* 프로세스 스케줄링 유형 : 선점형 스케줄링 / 비선점형 스케줄링

 

2) 선점 스케줄링 알고리즘★ ---> S M M R
  SRT  /  MLQ(다단계 큐)  /  MLFQ(다단계 피드백 큐)  /  Round Robin(라운드 로빈)

3) 비선점 스케줄링 알고리즘★ ---> 우 기 H F S
  우선 순위(Priority) / 기한부 스케줄링(Deadline) / HRN / FCFS / SJF

4) 스케줄링 계산 공식★ ---> 반종도 대반서
  반환시간 = 종료시간 - 도착시간
  대기시간 = 반환시간 - 서비스시간

 

            *응답시간 = 반환시간     

 

 

3. 운영체제 핵심 기능 파악(3)

 

< 교착 상태(Deadlock) >

  : 다중 프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태

1) 교착상태 발생 조건★ ---> 상,점,비,환
  상호배제 / 점유와 대기 / 비선점 / 환형대기

2) 교착상태 해결 방법★ ---> 예,회,발,복
  예방(Prevention) / 회피(Avoidance) / 발견(Detection) / 복구(Recovery)

 

 * 은행가 알고리즘 : 교착상태 회피 기법에서 사용, 안정상태일때만 자원 할당함

 * Wound-Wait : 오래된 프로세스는 기다리지 않음 , 회피기법 사용

   Wait-Die : 오래된 트랜잭션 기다리고 새로운 트랜잭션 rollback 후 다시 계획, 회피 기법 사용

 

 * 자원 할당 그래프 : 프로세스와 자원간의 관계를 나타내는 그래프로 교착상태 발견 가능,

                            교착상태의 발견 기법에서 사용

 

 * 가상화

    : 플랫폼 가상화(HW플랫폼 위에서) / 리소스 가상화

 * 가상화 기술 요소 

  : 컴퓨팅 가상화(하이퍼바이저) / 스토리지 가상화(분산 파일 시스템) / I/O가상화(가상 네트워크 인터페이스 카드 NIC)

      / 컨테이너(하이퍼바이저 없음-도커 Docker) / 분산 처리 기술(클러스터) / 네트워크 가상화 기술(SDN, NFV) 

 

 

3) 클라우드 컴퓨팅

   : 인터넷을 통해 가상화된 컴퓨터 시스템 리소스를 제공하고, 컴퓨터가 아닌 클라우드(인터넷)에

      연결된 다른 컴퓨터로 처리하는 기술


 * 클라우드 컴퓨팅 분류 ---> 사, 공, 하
  사설 클라우드 / 공용 클라우드 / 하이브리드 클라우드

 * 클라우스 컴퓨팅 유형 ---> 인, 플, 소
  인프라형 (IaaS) 서비스 / 플랫폼형 (PaaS) 서비스 / 소프트웨어형(SaaS) 서비스