본문 바로가기

정보처리기사

[정보처리기사] 실기 노트 - 응용 SW 기초 기술 활용 1

  1. 운영체제
    1. 운영체제의 개념
      1. 운영체제: 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
      2. 운영체제의 종류: Windows, UNIX, LINUX, MacOS, MS-DOS 등
    2. 운영체제의 목적: 처리 능력 (Throughput), 반환 시간 (Turn Around Time), 사용 가능도 (Availability), 신뢰도 (Reliability)
    3. 운영 체제의 구성
      1. 제어 프로그램 (Control Program): 컴퓨터 전체의 작동 상태 감시, 작업의 순서 지정, 작업에 사용되는 데이터 관리 등의 역할을 수행하는 것
      2. 처리 프로그램 (Processing Program): 제어 프로그램의 지시를 받아 사용자가 요구한 문제를 해결하기 위한 프로그램
    4. 운영체제의 기능
    5. 운영체제의 종류
      1. Windows: 1990년대 마이크로소프트 (Microsoft) 사가 개발한 운영체제
      2. UNIX: 1960년대 AT&T 벨 (Bell) 연구소, MIT, General Electric이 공동 개발한 운영체제
      3. LINUX: 1991년 리누스 토발즈 (Linus Torvalds)가 UNIX를 기반으로 개발한 운영체제
      4. MacOS: 1980년대 애플 (Apple) 사가 UNIX를 기반으로 개발한 운영체제
      5. iOS: 애플 (Apple) 사에서 개발한 유닉스 기반의 모바일 운영체제
      6. Android: 구글 (Google) 사에서 개발한 리눅스 커널 기반의 개방형 모바일 운영체제
  2. 기억장치 관리
    1. 기억장치관리의 개요
      1. 기억장치 계층 구조의 특징
        <그림1>
      2. 기억장치의 관리 전략
        1. 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것
        2. 기억장치의 관리 전략의 종류: 반입 (Fetch) 전략, 배치 (Placement) 전략, 교체 (Replacement) 전략
    2. 가상기억장치 구현기법
      1. 가상기억장치 (Virtual Memory)의 개요
        1. 보조기억장치의 일부를 주기억장치처럼 사용하는 것으로, 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법
      2. 페이징 (Paging) 기법
        1. 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법
      3. 세그먼테이션 (Segmentation) 기법
        1. 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법
    3. 페이지 교체 알고리즘
      1. 페이지 교체 알고리즘의 개요
        1. 페이지 부재 (Page Fault)가 발생하면 가상기억장치에서 필요한 페이지를 찾아 주기억장치에 적재해야 하는데, 이때 주기억장치의 모든 페이지 프레임이 사용중이면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법이 페이지 교체 알고리즘
        2. 종류: OPT, FIFO, LRU, LFU, NUR, SCR 등
      2. OPT (OPTimal replacement, 최적 교체)
        1. 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
      3. FIFO (First In First Out)
        1. 페이지가 주기억장치에 적재될 때마다 그 때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법
      4. LRU (Least Recently Used)
        1. 사용 빈도가 가장 적은 페이지를 교체하는 기법
      5. NUR (Not Used Recently)
        1. LRU와 비슷한 알고리즘으로, 최근에 사용하지 않은 페이지를 교체하는 기법
      6. SCR (Second Chance Replacement, 2차 기회 교체)
        1. 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법
    4. 가상기억장치 기타 관리 사항
      1. 페이지 크기
      2. Locality
      3. 워킹 셋 (Working Set)
      4. 페이지 부재 빈도 방식
        1. 페이지 부재율 (Page Fault Rate) 에 따라 주기억장치에 있는 페이지 프레임의 수를 늘리거나 줄여 페이지 부재율을 적정 수준으로 유지하는 방식
      5. 프리페이징 (Prepaging)
        1. 처음의 과도한 페이지 부재를 방지하기 위해 필요할 것 같은 모든 페이지를 한꺼버에 페이지 프레임에 적재하는 기법
      6. 스래싱 (Thrashing)
        1. 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
  3. 프로세스
    1. 프로세스의 개요
      1. 프로세스 (Process)
      2. PCB (Process Control Block, 프로세스 제어 블록)
        1. 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳
      3. 프로세스 상태 전이
        1. 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미함
      4. 프로세스 상태 전이 관련 용어
        1. Dispatch, Wake Up, Spooling, 교통량 제어기 (Traffic Controller)
      5. 스레드 (Thread)
        1. 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위 또는 프로세스 내에서의 작업 단위로 사용됨
    2. 스케줄링
      1. 스케줄링 (Scheduling) 의 개요
        1. 스케줄링: 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업을 의미함
        2. 스케줄링의 종류: 장기 스케줄링, 중기 스케줄링, 단기 스케줄링
      2. 스케줄링의 목적
        1. 공정성, 처리율 증가, CPU 이용률 증가, 우선순위 제도, 오버헤드 최소화, 응답 시간 최소화, 반환 시간 최소화, 대기 시간 최소화, 균형 있는 자원의 사용, 무한 연기 회피
      3. 프로세스 스케줄링의 기법: 비선점 (Non-Preemptive) 스케줄링, 선점 (Preemptive) 스케줄링
    3. 주요 스케줄링 알고리즘
      1. FCFS (First Come First Service, 선입 선출) = FIFO (First In First Out): 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법
      2. SJF (Shortest Job First, 단기 작업 우선)
        1. 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법
        2. HRN (Highest Response-ratio Next)
          1. 대기 시간과 서비스 (실행) 시간을 이용하는 기법
        3. RR (Round Robin)
          1. 각 프로세스를 시간 할당량 (Time Slice, Qunatum) 동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주는 기법
        4. SRT (Shortest Remaining Time)
          1. 현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 가장 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당하는 기법
    4. 환경변수
      1. 환경 변수 (Environment Variable) 의 개요
        1. 환경 변수란: 시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임을 의미
      2. Windows 의 주요 환경 변수
        1. Windows 에서 환경 변수를 명령어나 스크립트에서 사용하려면 변수명 앞뒤에 '%' 를 입력해야 함
        2. Windows 에서 set을 입력하면 모든 환경 변수와 값을 출력함
      3. UNIX / LINUX의 주요 환경 변수
        1. UNIX나 LINUX에서 환경 변수를 명령어나 스크립트에서 사용하려면 변수명 앞에  '$'를 입력해야 함
        2. UNIX나 LINuX에서는 set, env, printenv, setenv 중 하나를 입력하면 모든 환경 변수와 값을 표시함
    5. 운영체제 기본 명령어
      1. Windows 기본 명령어
        1. DIR, COPY, DEL, TYPE, REN, MD, CD, CLS, ATTRIB, FIND, CHKDSK, FORMAT, MOVE 등
      2. UNIX / LINUX 기본 명령어
        1. cat, cd, chmod, chown, cp, rm, find, fsck, kill, fork, killall, ls, mkdir, rmdir, mv, ps, pwd, top, who 등

그림1