[자격증] 정보처리기사 필기 : 제4과목 프로그래밍 언어 (응용 SW 기초 기술 활용)

 정보

  • 업무명     : 정보처리기사 필기 : 제4과목 프로그래밍 언어 (응용 SW 기초 기술 활용)

  • 작성자     : 박진만

  • 작성일     : 2021-03-03

  • 설   명      :

  • 수정이력 :

 

 

 내용

[운영체제의 개념]

  • 운영체제(OS; Operating System)의 정의

    • 시스템의 자원을 효율적으로 관리, 편리하고 효과적으로 사용할 수 있도록 환경을 제공

  • 운영체제의 목적

    • 처리 능력 향상, 반환 시간 단축, 사용 가능도 향상, 신뢰도 향상

  • 운영체제의 기능

    • 프로세서, 기억장치, 입·출력 장치, 파일 정보 등의 자원을 관리

  • 운영체제의 주요 자원 관리

    • 프로세스 관리, 기억장치 관리, 주변장치 관리, 파일 관리

  • 운영체제의 종류

    • Windows, UNIX, LINUX, MacOS, MS-DOS

 

[Windows]

  • Windows의 개요

    • 그래픽 사용자 인터페이스(GUI; Graphic User Interface)

    • 선점형 멀티태스킹(Preemptive Multi-Tesking)

    • PnP(Plug and Play, 자동 감지 기능)

    • OLE(Object Linking and Embedding)

    • 255자의 파일명.

    • Single-User 시스템

 

[UNIX / LINUX / MacOS]

  • UNIX의 개요 및 특징

    • 대화식 운영체제, 이식성이 높다

    • 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원한다.

    • 트리 구조의 파일 시스템을 갖는다.

  • UNIX 시스템의 구성

    • 커널(Kernel) : UNIX의 가장 핵심적인 부분

    • 쉘(Shell):사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기

  • LINUX

  • MacOS

 

[기억장치 관리의 개요]

  • 기억장치 계층 구조의 특징

    • 기억장치는 레지스터, 캐시 기억장치, 주기억장치, 보조기억장치 계층 구조로 분류

  • 기억장치의 관리 전략의 개요

    • 한정된 주기억장치의 공간을 효율적으로 사용- 반입 전략, 배치 전략, 교체 전략

  • 반입(Fetch)전략

    • 언제 주기억장치로 적재할 것인지 결정 (요구 반입, 예상 반입)

  • 배치(Placement) 전략

    • 주기억장치의 어디에 위치시킬 것인지를 결정-최초 적합, 최적 적합, 최악 적합

  • 교체(Replacement) 전략

    • 어느 영역을 교체하여 사용할 것인지를 결정하는 전략-FIFO, LRU, LFU

 

[주기억장치 할당 기법]

  • 주기억장치 할당의 개념

    • 연속 할당 기법 : 연속으로 할당하는 기법, 단일 분할 할당 기법, 다중 분할 할당 기법

    • 분산 할당 기법 : 분산하여 할당하는 기법, 페이징 기법, 세그먼테이션 기법

  • 단일 분할 할당 기법

    • 오버레이 기법 : 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법

    • 스와핑 기법 : 필요에 따라 다른 프로그램과 교체하는 기법

  • 다중 분할 할당 기법

    • 고정 분할 할당 기법(정적 할당 기법) : 고정된 크기로 분할

    • 가변 분할 할당 기법(동적 할당 기법) : 필요한 만큼의 크기로 영역을 분할하는 기법

 

[가상기억장치 구현 기법 / 페이지 교체 알고리즘]

  • 가상기억장치의 개요

    • 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는

      • 주기억장치의 용량보다 프로그램을 실행

      • 주기억장치의 이용률과 다중 프로그래밍의 효율을 높일 수 있다.

  • 페이징(Paging) 기법

    • 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지 프레임)에 적재

  • 세그먼테이션(Segmentation) 기법

    • 프로그램을 다양한 크기의 논리적인 단위로 나눈 주기억장치에 적재시켜 실행

  • 페이지 교체 알고리즘

    • 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법

    • OTP(최적 교체)

    • FIFO(First In First Out)

    • LRU(Least Recently Used)

    • LFU(Least Frequently Used)

    • NUR(Not Used Recently)

    • SCR(Second Chance Replacement, 2차 기회 교체)

 

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

  • 페이지 크기

    • 작을 경우: 페이지 맵 테이블의 크기가 커지고, 매핑 속도가 늦어진다.

    • 클 경우 : 페이지 맵 테이블의 크기가 작아지고, 매핑 속도가 빨라진다.

  • Locality(국부성, 지역성, 구역성, 국소성)

    • 주기억장치를 참조할때 일부 페이지만 집중적으로 참조

  • 워킹 셋(Working Set)

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

  • 프리페이징(Prepaging) : 필요할 같은 모든 페이지를 한꺼번에 페이지 프레임에 적재하는 기법

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

 

[프로세스의 개요]

  • 프로세스(Process)의 정의

    • 실행중인 프로그램

  • PCB(Process Control Block, 프로세스 제어 블록)

    • 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 곳

  • 프로세스 상태 전이

    • 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는

    • 프로세스 상태 : 제출(Submit), 접수(Hold), 준비(Ready), 실행(Run), 대기(Wait),   료(Terminated, Exit)

  • 스레드(Thread)

    • 프로세스 내에서의 작업 단위로서 시스템의 여러 자원을 할당받아 실행하는 프로그램의  단위

 

[스케줄링]

  • 스케줄링(Scheduling)의 개요

    • 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업

  • 스케줄링의 목적

    • 처리율(량) 증가, CPU 이용률 증가, 응답시간(Response Time, 반응 시간) 최소화

    • 반환 시간(Turn Around Time) 최소화, 대기 시간 최소화

  • 프로세스 스케줄링의 기법

    • 비선점(Non-Preemptive) 스케줄링 :해당 프로세스가 완료될 때가지 CPU를 사용

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

    • 선점(Preemptive) 스케줄링 : 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용

    • 종류 : Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐

 

[환경 변수]

  • 환경 변수의 개요

    • 시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임

      • 변수명과 값으로 구성, 시스템의 기본 정보를 저장, 자식 프로세스에 상속

      • 시스템 변수와 사용자 환경 변수로 구분

  • Windows의 주요 환경 변수

    • 환경 변수를 명령어나 스크립트에서 사용하려면 변수명 앞뒤에 ‘%’를 입력

  • UNIX / LINUX의 주요 환경 변수

    • 환경 변수를 명령어나 스크립트에서 사용하려면 변수명 앞에 ‘$’를 입력

 

[운영체제 기본 명령어]

  • 운영체제 기본 명령어의 개요

    • CLI(Command Line Interface) : 키보드로 명령어를 직접 입력하여 작업을 수행

    • GUI(Graphic User Interface) : 마우스로 아이콘이나 메뉴를 선택하여 작업을 수행

  • Windows 기본 명령어

    • CLI 기본 명령어 : DIR, COPY, TYPE, CD, CHKDSK, FORMAT

    • GUI 기본 명령어

  • UNIX / LINUX 기본 명령어

    • CLI 기본 명령어 : cat, chdir, chmod, fork, ls, mount, rm, wait

    • GUI 기본 명령어

 

[인터넷]

  • 인터넷(Internet)의 개요

    • TCP/IP 프로토콜을 기반으로 하여 전 세계 수많은 컴퓨터와 네트워크들이 연결된 광범  위한 컴퓨터 통신망

  • IP 주소(Internet Protocol Address)

    • 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소

      • A Class : 16,777,216개의 호스트 사용

      • B Class : 65,536개의 호스트 사용

      • C Class : 256개의 호스트 사용

      • D Class : 멀티캐스트용

      • E C lass : 실험적 주소이며 공용되지 않음

  • 서브네팅(Subnetting)

    • 할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나누어 사용하는

    • 서브넷 마스크(Subnet Mask) : 네트워크 주소와 호스트 주소를 구분하기 위한 비트

  • IPv6(Internet Protocol version 6)의 개요

    • IPv4의 주소 부족 문제를 해결하기 위해 개발, 128비트의 긴 주소를 사용

  • IPv6의 구성

    • 유니캐스트(Unicast), 멀티캐스트(Multicast), 애니캐스트(Anycast)

  • 도메인 네임(Domain name)

    • 숫자로 된 IP 주소를 사람이 이해하기 쉬운 문자 형태로 표현한

    • DNS(Domain Name System) : 도메인 네임을 IP 주소로 변환하는 역할을 하는 시스템

 

[OSI 참조 모델]

  • OSI(Open System Interconnection)참조 모델의 개요

    • 다른 시스템 간의 원활한 통신을 위해 ISO(국제표준화기구)에서 제안한 통신 규약

      • 하위 계층 : 물리 계층 → 데이터 링크 계층 → 네트워크 계층

      • 상위 계층 : 전송 계층 → 세션 계층 → 표현 계층 → 응용 계층

  • OSI 참조 모델의 목적

    • 서로 다른 시스템 간을 상호 접속하기 위한 개념을 규정

  • OSI 참조 모델에서의 데이터 단위

    • 프로토콜 데이터 단위(PDU) : 동일 계층 간에 교환되는 정보의 단위

    • 서비스 데이터 단위(SDU) : 상·하위 계층끼리 주고받는 정보의 단위

  • 물리 계층(Physical Layer)

    • 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의

  • 데이터 링크 계층(Data Link Layer)

    • 두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록

    • 흐름 제어 기능, 프레임의 동기화 기능, 오류 제어 기능

  • 네트워크 계층(Network Layer, 계층)

    • 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능

    • 경로 설정(Routing), 데이터 교환 중계, 트래픽 제어, 패킷 정보 전송

  • 전송 계층(Transport Layer)

    • 종단 시스템(End-to-End) 간에 투명한 데이터 전송

    • 오류 제어, 흐름 제어

  • 세션 계층(Session Layer)

    • 대화 제어 담당

  • 표현 계층(Presentation Layer)

    • 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식(포맷) 변환, 문맥 관리 기능

  • 응용 계층(Application Layer)

    • 사용자(응용 프로그램)가 OSI 환경에 접근할 수 있도록 서비스를 제공

 

[네트워크 관련 장비]

  • 네트워크 인터페이스 카드(NIC; Network Interface Card)

    • 컴퓨터와 컴퓨터 또는 컴퓨터와 네트워크를 연결하는 장치

  • 허브(Hub) : 가까운 거리의 컴퓨터들을 연결하는 장치

  • 리피터(Repeater) : 약해질 경우 원래의 신호 형태로 재생하여 다시 전송하는 역할을 수행

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

  • 스위치(Switch) : LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치

  • 라우터(Router) : 데이터 전송의 최적 경로를 선택할 있는 기능

  • 게이트웨이(Gateway)

    • 전 계층(1~7계층)의 프로토콜 구조가 다른 네트워크의 연결을 수행

 

[프로토콜의 개념]

  • 프로토콜(Protocol)의 정의

    • 서로 다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화시켜 놓은 통신  규약

  • 프로토콜의 기본 요소

    • 구문(Syntax)

    • 의미(Semantics)

    • 시간(Timing)

  • 프로토콜의 기능

    • 단편화와 재결합, 캡슐화, 흐름 제어, 오류 제어, 동기화, 순서 제어, 주소 지정, 다중화, 경  로 제어, 전송 서비스

 

[TCP / IP]

  • TCP / IP의 개요(Transmission Control Protocol / Internet Protocol)

    • 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준  프로토콜

  • TCP / IP의 구조

    • 응용 계층, 전송 계층, 인터넷 계층, 네트워크 액세스 계층으로 이루어져 있다.

  • 응용 계층의 주요 프로토콜

    • FTP(File Transfer Protocol)

    • SMTP(Simple Mail Transfer Protocol)

    • TELNET

    • SNMP(Simple Network Management Protocol)

    • DNS(Domain Name System)

    • HTTP(Hyper Text Transfer Protocol)

  • 전송 계층의 주요 프로토콜

    • TCP(Transmission Control Protocol) : 스트림 위주의 전달(패킷 단위)

    • UDP(User Datagram Protocol)

    • RTCP(Real-Time Control Protocol)

  • 인터넷 계층의 주요 프로토콜

    • IP(Internet Protocol)

    • ICMP(Internet Control Massage Protocol)

    • ARP(Address Resolution Protocol)

    • RARP(REVERSE Address Resolution Protocol)

  • 네트워크 액세스 계층의 주요 프로토콜

 

[문제]

  • 1. 컴퓨터의 윈도우 창에 여러 윈도우를 열어 놓고 작업하는 것을 기억장치 처리  방법으로 무엇이라 하는가?

    •   보조 프로그램

    •   멀티 프로세싱

    •   멀티 프로그래밍

    •   리얼 타임 프로그래밍

 

  • 2. 기억장치의 관리 전략 중 반입(Fetch) 전략의 설명으로 맞는 것은?

    • 프로그램/데이터를 주기억장치로 가져오는 시기를 결정하는 전략

    • 프로그램/데이터의 주기억장치 내의 위치를 정하는 전략

    • 주기억장치 내의 빈 공간 확보를 위해 제저할 프로그램/데이터를 선택하는 전략

    • 프로그램/데이터의 위치를 이동시키는 전략

 

  • 3. 실기억장치를 사용하는 시스템에서 주기억장치를 고정된 크기로 분할하여  사용하는 경우에 대한 설명 가장 거리가 것은?

    • 내부 조각(Internal Fragmentation) 현상이 발생한다.

    • 주기억장치와 보조기억장치 간에 데이터의 이동이 빈번히 발생한다.

    • 프로그램이 주어진 분할 안에 다 들어갈 수 없는 경우가 생길 수 있다.

    • 프로그램이 실행되기 위해서는 전체가 주기억장치에 위치해야 한다.

 

  • 4. 페이징 기법과 세그먼테이션 기법에 대한 설명으로 옳지 않은 것은?

    •   페이징 기법에서는 주소 변환을 위한 페이지 맵 테이블이 필요하다.

    •   프로그램을 일정한 크기로 나눈 단위를 페이지라고 한다.

    •   세그먼테이션 기법에서는 하나의 작업을 크기가 각각 다른 여러 논리적인 단위로 나누  사용한다.

    •   세그먼테이션 기법에서는 내부 단편화가, 페이징 기법에서는 외부 단편화가 발생할 수  있다.

 

  • 5. 페이지 오류율(Page Fault Ratio)과 스래싱(Thrashing)에 대한 설명으로  옳은 것은?

    •   페이지 오류율이 크면 스래싱이 많이 발생한 것이다.

    •   페이지 오류율과 스래싱은 전혀 관계가 없다.

    •   스래싱이 많이 발생하면 페이지 오류율이 감소한다.

    •   다중 프로그래밍의 정도가 높을수록 페이지 오류율과 스래싱이 감소한다.

 

  • 6. 스레드(Thread)에 대한 설명으로 옳지 않은 것은?

    •   한 개의 프로세스는 여러 개의 스레드를 가질 수 없다.

    •   커널 스레드의 경우 운영체제에 의해 스레드를 운용한다.

    •   사용자 스레드의 경우 사용자가 만든 라이브러리를 사용하여 스레드를 운용한다.

    •   스레드를 사용함으로써 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상  시킬수 있다.

 

  • 7. 선점(Preemptive) 스케줄링 방식에 대한 설명으로 옳지 않은 것은?

    •   대화식 시분할 시스템에 적합하다.

    •   긴급하고 높은 우선순위의 프로세스들이 빠르게 처리될 수 있다.

    •   일단 CPU를 할당받으면 다른 프로세스가 CPU를 강제적으로 빼앗을 수없는 방식이다.

    •   선점을 위한 시간 배당에 대한 인터럽트용 타이머 클록(Clock)이 필요하다.

 

  • 8. UNIX에서 기존 파일 시스템에 새로운 파일 시스템을 서브 디렉토리에 연결  할 때 사용하는 명령은?

    • mount

    • find

    • fsck

    • wait

 

  • 9. OSI 참조 모델의 데이터 링크 계층에 대한 설명으로 틀린 것은?

    •   물리적 계층의 신뢰도를 높여 주고 링크의 확립 및 유지할 수 있는 수단을 제공한다.

    •   에러 제어, 흐름 제어 등의 기능을 수행한다.

    •   종단 시스템 간에 End-to-End 통신을 지원한다.

    •   대표적 프로토콜로는 HDLC, BSC 등이 있다.

 

  • 10. 둘 이상의 컴퓨터 사이에 데이터 전송을 할 수 있도록 미리 정보의 송·수신 측  에서 정해둔 통신 규칙은?

    •   프로토콜

    •   링크

    •   터미널

    •   인터페이스

 

  • 11. 인터넷 프로토콜로 사용되는 TCP/IP의 계층화 모델 중 Transport 계층에서  사용되는 프로토콜은?

    •   FTP

    •   IP

    •   ICMP

    •   UDP

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com