관리 메뉴

나구리의 개발공부기록

3장 - 응용 SW 기초 기술 활용 핵심 요약 본문

2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 4강 - 프로그래밍 언어 활용

3장 - 응용 SW 기초 기술 활용 핵심 요약

소소한나구리 2024. 5. 10. 18:59

2024년도 시나공 필기 책 내용 정리 


2024년 5월 12일이 필기 시험이므로 시간이 부족하여 핵심요약만 작성하면서 공부..

본문은 눈으로만 읽고 남은시간은 기출문제에 올인 


섹션18. 운영체제의 개념

 

1. 운영체제의 목적

 

  • 처리 능력(Throughput) : 일정 시간 내에 시스템이 처리하는 일의 양
  • 반환 시간(Turn Around Time) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린시간
  • 사용 가능도(Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
  • 신뢰도(Rliability) : 시스템이 주어진 문제를 정확하게 해결하는 정도

2. 운영체제의 구성

 

  • 제어 프로그램 : 감시 프로그램, 작업 관리 프로그램, 데이터 관리 프로그램
  • 처리 프로그램 : 언어 번역 프로그램, 서비스 프로그램

3. 운영체제의 기능

 

  • 프로세서(처리기, Processor), 기억장치(주기억장치, 보조기억장치), 입/출력장치, 파일 및 정보 등의 자원을 관리
  • 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공함
  • 사용자와 시스템 간의 편리한 인터페이스를 제공
  • 시스템의 각종 하드웨어와 네트워크를 관리 및 제어
  • 자원 보호 기능을 제공

섹션19. Windows

 

1. 선점형 멀티태스킹

 

  • 동시에 여러 개의 프로그램을 실행하는 멀티태스킹을 하면서 운영체제가 각 작업의 CPU이용 시간을 제어하여 응용 프로그램 실행중 문제가 발생하면 해당 프로그램을 강제 종료시키고 모든 시스템 자원을 반환하는 방식을 말함

2. PnP(Plug ans Play)

 

  • 컴퓨터 시스템에 프린터나 사운드 카드 등의 하드웨어를 설치했을 때 해당 하드웨어를 사용하는데 필요한 시스템 환경을 운영체제가 자동으로 구성해 주는 기능

섹션20. UNIX / LINUX / MacOS

 

1. UNIX의 특징

 

  • 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높음
  • 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원함
  • 많은 네트워킹 기능을 제공하므로 통신망(Network) 관리용 운영체제로 적합함
  • 트리 구조의 파일 시스템을 갖음
  • 전문적인 프로그램 개발에 용이함

2. 커널(Kernel)

 

  • UNIX의 가장 핵심적인 부분
  • 하드웨어를 보호(캡슐화)하고, 프로그램들과 하드웨어간의 인터페이스 역할을 담당함
  • 기능 : 프로세스 관리, 기억장치 관리, 파일 관리, 입/출력관리, 프로세스 간 통신, 데이터 전송 및 변환 등

3. 쉘(Shell)

 

  • 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
  • 시스템과 사용자 간의 인터페이스를 담당함
  • DOS의 COMMAND.COM과 같은 기능을 수행함
  • 주기억장치에 상주하지 않고 명령어가 포함된 파일 형태로 존재하며 보조기억장치에서 교체 처리가 가능

4. 파일 디스크립터

 

  • 파일 제어 블록(FCB; File Control Block)이라고도 함
  • 파일마다 독립적으로 존재하며 시스템에 따라 다른 구조를 가질 수 있음
  • 보조기억장치 내에 저장되어 있다가 해당 파일이 Open될 때 주기억장치로 옮겨짐
  • 파일 시스템이 관리하므로 사용자가 직접 참조할 수 없음

섹션21. 기억장치 관리의 개요

 

1. 기억장치 관리 전략

 

  • 종류 : 반입(Fetch) 전략, 배치(Placement) 전략, 교체(Replacement) 전략
  • 배치 전략의 종류
최초 적합(First Fit) 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치
최적 적합(Best Fit) 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치
최악 적합(Worst Fit) 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 크게 남기는 분할 영역에 배치

섹션22. 가상기억장치 구현 기법 / 페이지 교체 알고리즘

 

1. 페이징(Paging)기법

 

  • 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영약(페이지 프레임)에 적재시켜 실행하는 기법

2. 세그먼테이션(Segmentation) 기법

 

  • 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법

3. 페이지 교체 알고리즘

 

  • 페이지 부재(Page Fault)가 발생했을 때 가상기억장치의 필요한 페이지를 주기억장치에 적재할 때 주기억장치의 모든 페이지 프레임이 사용중이면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법\
  • 종류 : OPT, FIFO, LRU, LFU, NUR, SCR 등

4. 페이지 교체 알고리즘 - FIFO

 

  • 각 페이지가 주기억장치에 적재될 때 마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법

ex) FIFO 알고리즘을 사용하여 페이지 프레임을 교체했을 때 페이지 부재의 수(초기 페이지프레임은 비어있음)

 

  • 페이지 부재의 수 = 6
참조 페이지 2 3 2 1 5 2 3 5
페이지
프레임
2 2 2 2 5 5 5 5
  3 3 3 3 2 2 2
      1 1 1 3 3
부재 발생   ●   

 

5. 페이지 교체 알고리즘 - LRU

 

  • 각 페이지마다 계수기(Counter)나 스택(Stack)을 두어 현 시검에서 가장 오랫동안 사용하지 않은(가장 오래 전에 사용된 페이지)를 교체

ex) LRU 알고리즘을 사용하여 페이지 프레임을 교체했을 때 페이지 부재의 수(초기 페이지프레임은 비어있음)

  • 페이지 부재의 수 = 5
참조 페이지 2 3 2 1 5 2 3 5
페이지
프레임
2 2 2 2 2 2 2 2
  3 3 3 5 5 5 5
      1 1 1 3 3
부재 발생      

섹션23. 가상기억장치 기타 관리 사항

 

1. 페이지 크기가 작을 경우

 

  • 페이지 단편화가 감소되고 한 개의 페이지를 주기억장치고 이동하는 시간이 줄어듦
  • 불필요한 내용이 주기억장치에 적재될 확률이 적으므로 효율적인 워킹 셋을 유지할 수 있음
  • Locality에 더 일치할 수 있기 때문에 기억장치 효율이 높아짐
  • 페이지 정보를 갖는 페이지 맵 테이블의 크기가 커지고 매핑 속도가 늦어짐
  • 디스크 접근 횟수가 많아져서 전체적인 입/출력 시간은 늘어남

2. Locality

 

  • 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론
  • 시간 구역성이 이루어지는 장소 : Loop(반복, 순환), 스택(Stack), 부 프로그램(Sub Routine), Counting(1씩 증감), 집계(Totaling)에 사용되는 변수(기억장소)
  • 공간 구역성이 이루어지는 기억장소 : 배열 순회(Array Traversal, 배열 순례), 순차적 코드의 실행, 프로그래머들이 관련된 변수(데이터를 저장할 기억장소)들을 서로 근처에 선언하여 할당되는 기억장소, 같은 영역에 있는 변수를 참조할 때 사용

3. 워킹 셋(Working Set)

 

  • 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합

4. 스래싱(Thrasing)

 

  • 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상

섹션 24. 프로세스의 개요

 

1. 프로세스의 정의

 

  • PCB를 가진 프로그램
  • 실기억장치에 저장된 프로그램
  • 프로세서가 할당되는 실체로서, 디스패치가 가능한 단위
  • 프로시저가 활동중인 것
  • 비동기적 행위를 일으키는 주체
  • 지정된 결과를 얻기 위한 일련의 계통적 동작
  • 목적 또는 결과에 따라 발생되는 사건들의 과정
  • 운영체제가 관리하는 실행 단위

2. 프로세스 상태 전이

 

  • 제출(Submit) : 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
  • 접수(Hold) : 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태
  • 준비(Ready) : 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
  • 실행(Run) : 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
  • 대기(Wait), 보류, 블록(Block) : 프로세스에 입/출력 처리가 필요하면 현재 실행중인 프로세스가 중단되고, 입/출력 처리가 완료될 때까지 대기하고 있는 상태
  • 종료(Terminated, Exit) : 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태

3. Dispatch

 

  • 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정

4. 스레드의 특징

 

  • 실행 환경을 공유시켜 기억장소 및 자원의 낭비가 줄어듦
  • 하나의 프로세스를 여러 개의 스레드로 생성하여 병행성을 증진시킬 수 있음
  • 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상 시킬 수 있음
  • 스레드는 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스라고도 함
  • 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신함
  • 하나의 프로세스에 하나의 스레드가 존재하는 경우에는 단일 스레드, 하나 이상의 스레드가 존재하는 경우에는 다중 스레드라고함

섹션25. 스케줄링

 

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

 

  • 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
  • 프로세스가 CPU를 할당받으면 해당 프로세스가 완료 될 때 까지 CPU를 사용
  • 모든 프로세스에 대한 요구를 공정하게 처리할 수 있음

2. 선점(Preemptive) 스케줄링

 

  • 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
  • 우선순위가 높은 프로세스를 빠르게 처리할 수 있음
  • 주로 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 사용됨
  • 많은 오버헤드(Overhead)를 초래함

섹션26. 주요 스케줄링 알고리즘

 

1. SJF(Shortest Job First)

 

  • 스케줄링 하고자 하는 세 작업의 도착시간과 실행시간이 다음 표와 같을 때 SJF로 작업을 스케줄링하였을 때 작업2의 종료 시간은?
작업 도착시간 실행시간
1 0 6
2 1 3
3 2 4
  • SJF는 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법, 그러나 처음에 도착한 작업 1은 다른 작업과 실행시간을 비교할 수 없으므로 실행시간에 상관없이 먼저 수행 됨 (반환시간 = 실행시간 + 대기시간)
  • 작업1 : 도착하자마자 실행되어 6에서 작업이 완료됨, 대기시간은 0이고 반환시간은 6
  • 작업2 : 1에 도착하여 작업1이 완료될 때까지 대기한 후 작업1이 완료되는 6에서 실행을 시작하여 9에 작업이 완료, 대기시간은 5, 반환시간은 8
  • 작업3 : 2에 도착하여 작업 2가 완료될 때까지 대기한 후 작업2가 완료되는 9에서 실행을 시작하여 13에 작업이 완료, 대기시간은 7, 반환시간은 11

2. HRN(Hightest Response-ratio Next)

 

  • HRN방식으로 스케줄링, 다음 표의 작업의 우선순위가 가장 높은 작업은?
작업 대기시간 서비스시간
A 5 5
B 10 6
C 15 7
D 20 8
  •  HRN 방식의 우선순위 계산식은 대기시간 + 서비스시간 / 서비스 시간 이므로 대입해서 계산
  • A작업 = 5 + 5 / 2 = 2
  • B작업 = 10 + 6 / 6 = 2.6
  • C작업 = 15 + 7 / 7 = 3.1
  • D작업 + 20 + 8 / 8 = 3.5
  • 결과값이 큰 작업이 우선순위가 높으므로 D작업이 가장 우선순위가 높음

섹션27. 환경 변수

 

1. UNIX / LINUX의 주요 환경 변수

 

  • UNIX나 LINUX에서 환경 변수를 명령어나 스크립트에서 사용하려면 변수명 앞에 '$'를 입력해야함
  • set, env, printenv, setenv 중 하나를 입력하면 모든 환경 변수와 값을 표시함

섹션28. 운영체제 기본 명령어

 

1. UNIX의 주요 명령어

  • fork : 새로운 프로세스를 생성함(하위 프로세스 호출, 프로세스 복제 명령)
  • uname : 시스템의 이름과 버전, 네트워크 호스트명 등의 시스템 정보를 표시함
  • wait : fork 후 exec에 의해 실행되는 프로세스의 상위 프로세스가 하위 프로세스 종료 등의 event를 기다림
  • chmod : 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정
  • ls : 현재 디렉터리 내의 파일 목록을 확인
  • cat : 파일 내용을 화면에 표시
  • chown : 소유자를 변경함

섹션29. 인터넷

 

1. IP 주소

 

  • 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소
  • 숫자로 8비트씩 4부분 총 32비트로 구성되어있음
  • IP주소는 네트워크 부분의 길이에 따라 A클래스에서 E클래스까지 총 5단계로 구성되어있음, ex) C클래스 : 192 ~ 223 으로 시작

2. 서브네팅의 예

 

  • 192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 3개의 Subnet으로 나누기(IP Subnet-Zero를 적용, 서브넷부분이 모두 0인 주소도 사용 가능하다는 뜻)
    • 1의 개수가 24 = C클래스에 속하는 네트워크
    • 11111111 . 11111111. 11111111. 00000000 = 255.255.255.0 (서브넷마스크)
    • 서브넷 마스크를 Subnet으로 나눌 때는 서브넷 마스크가 0인부분(마지막8비트)를 이용하면 됨
    • 3개로  Subnet을 나눠야하므로 00000000 8자리중 왼쪽부터 3을 표현할 2자리를 제외하고 나머지 6자리를 호스트로 구성, 00 (3을 표현) | 000000 (호스트 구성)
    • FLSM(Fixed Length Subnet Mask)로 구성하면 고정된 크기로 주소를 할당하고, 호스트ID는 6bit로 설정되었으므로 3개의 네트워크개 64개(2⁶)씩 고정된 크기로 할당
    • 192.168.1.0 ~ 63(00111111) / 64개
    • 192.168.1.64 ~ 127(01111111) / 64개
    • 192.168.1.128 ~ 191(10111111) / 64개

3. IPv6

 

  • IPv4의 주소 부족 문제를 해결하기 위해 개발된 것으로 16비트씩 8부분, 총 128비트로 구성되며 각 부분을 16진수로 표현하고 콜론(:)으로 구분하며 IPv4보다 빠름
  • 주소의 확장성, 융통성, 연동성이 뛰어남
  • 등급별, 서비스별로 패킷을 구분할 수 있어 품질 보장이 용이함
  • IPv4를 IPv6로 전환하는 전략
    • 듀얼 스택(Dual Stack) : 호스트에서 IPv4와 IPv6을 모두 처리할 수 있도록 두개의 스택을 구성하는 것
    • 터널링 (Tunneling) : IPv6망에서 인접한 IPv4 망을 거쳐 다른 IPv6망으로 통신할 때 IPv4망에 터널을 만들어 IPv6 패킷이 통과할 수 있도록 하는 것
    • IPv4/IPv6 변환 : 헤더 변환, 전송 계층 릴레이 방식, 응용 계층 게이트웨이 방식

4. IPv6 주소체계

 

  • 유니캐스트(Unicast) : 단일 송신자와 단일 수신자 간의 통신 (1 대 1 통신에 사용)
  • 멀티캐스트(Multicast) : 단일 송신자와 다중 수신자 간의 통신 (1 대 다 통신에 사용)
  • 애니캐스트(Anycast) : 단일 송신자와 가장 가까이 있는 단일 수신자 간의 통신 (1 대 1 통신에 사용)

섹션30. OSI 참조 모델

 

1. 물리 계층

 

  • 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의
  • 프로토콜 : RS-232C, X, 21 등
  • 단위 : 비트

2. 데이터 링크 계층

 

  • 2개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 함
  • 흐름 제어, 프레임 동기화, 오류 제어, 순서 제어 등을 수행
  • 프로토콜 : HDLC, LAPB, PPP, LLC 등
  • 단위 : 프레임

 

3. 네트워크 계층

 

  • 개방 시스템들 간의 네트워크 연결을 관리(네트워크 연결을 설정, 유지, 해제)하고 데이터를 교환 및 중계함
  • 경로 설정(Routing), 트래픽 제어, 패킷 정보 전송 등을 수행함
  • 단위 : 패킷

4. 전송 계층

 

  • 종단 시스템(End-to-End) 간에 투명한 데이터 전송을 가능하게 함
  • 전송 연결 설정, 데이터 전송, 연결 해제 기능, 주소 설정, 다중화(데이터의 분할과 재조립), 오류 제어, 흐름 제어 등을 수행함
  • 단위 : 세그먼트

5. 세션 계층

 

  • 송/수신 측 간의 관련성을 유지하고 대화 제어를 담당함
  • 대화 구성 및 동기 제어, 데이터 교환 관리 기능을 함
  • 송/수신 측 간의 데이터 전송, 연결 해제, 동기 처리 등의 대화를 관리하기 위해 토큰이 사용됨
  • 단위 : 메세지 (표현,애플리케이션 계층도 동일)

섹션31. 네트워크 관련 장비

 

1. 브리지 : LAN과 LAN을 연결하거나 LAN안에서 컴퓨터 그룹(세그먼트)을 연결하는 기능을 수행

 

2. 스위치 : 브리지와 같이 LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치

 

3. 라우터 : 브리지와 같이 LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택할 수 있는 기능이 추가된 것으로 서로 다른 LAN이나 LAN과 WAN의 연결도 수행함

 

4. 브라우터 : 브리지와 라우터의 기능을 모두 수행하는 장치, 브리지 기능은 내부 네트워크를 분리하는 용도로 사용하고 라우터 기능은 외부 네트워크에 연결하는 용도로 사용

 

5. 전처리기 : 통신 회선 및 단말장치 제어, 메세지의 조립과 분해, 전송 메세지 검사 등을 미리 수행하여 컴퓨터의 부담을 줄여 주는 역할을 함 


섹션32. TCP/IP

 

1. TCP

 

  • 신뢰성(안정성) 있는 연결형 서비스를 제공
  • 순서 제어, 오류 제어, 흐름 제어 기능을 제공
  • 양방향 연결형 서비스를 제공
  • 스트림(Stream) 전송 기능을 제공

2. IP

 

  • 비연결형 서비스를 제공
  • Best Effort 원칙에 따른 전송 기능을 제공
  • 주소 지정, 경로 선택 기능을 제공
  • 헤더의 길이는 최소 20Byte에서 최대 60Byte

3. MQTT

 

  • 발행 - 구독 기반의 메세징 프로토콜로  IoT환경에서 자주 사용됨

 

4. UDP

 

  • 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스를 제공
  • 흐름 제어나 순서 제어가 없어 전송 속도가 빠름
  • 실시간 전송에 유리(스트리밍 등)하며, 신뢰성 보다는 속도가 중요시되는 네트워크에서 사용

5. ICMP

 

  • IP와 조합하여 통신중에 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메세지를 관리하는 역할을 하며 헤더는 8Byte로 구성됨

6. ARP

 

  • 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC Address)로 변경

7. CSMA/CD

 

  • IEEE 802.3 LAN에서 사용되는 전송 매체 접속 제어(MAC) 방식