개발공부/정보처리기사

[정보처리기사 실기] 11장 응용 SW 기초 기술 활용

햄❤️ 2023. 4. 16. 11:05
728x90

 

정보처리기사 수제비 2022 실기 문제집을 요약하며 공부했습니다! 😁 

 


 

11-1. 운영체제의 특징

11-1-1. 운영체제 종류

📌 운영체제(Operating System)

- 사용자가 컴퓨터의 하드웨어를 보다 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어

- 운영체제는 크게 인터페이스(쉘) + 커널의 구조

✏️특징:  사용자 편리성 제공, 인터페이스 기능 담당, 스케쥴링 담당, 자원 관리, 제어 기능

✏️커널의 기능: 프로세스 관리, 기억장치 관리, 주변장치 관리, 파일 관리

 

📌유닉스 계열 운영체제

- 데니스 리치와 켄 톰슨등이 함께 벨 연구소를 통해 만든 운영체제, 90% 이상이 C언어로 구현되어 있는 범용 다중 사용자 방식의 시분할 운영체제

✏️유닉스 계열 운영체제 특징

  • 화식 운영체제 기능 제공, 중 작업 기능 제공, 다중 용자 기능 제공, 식성 제공, 층적 트리 구조 파일 시스템 제공
  1. 리눅스 운영체제: 유닉스 기반. 소스코드가 공개된 오픈 소스 기반. 데비안, 레드헷, 우분투 등 다양하게 출시 됨
  2. 맥 운영체제: 애플의 유닉스 기반 그래픽 사용자 인터페이스 기반 운영체제
  3. 안드로이드 운영체제: 눅스 기반, 자바와 틀린 언어, 타임 라이브러리(컴파일된 바이트 코드 구동 가능), SDK 제공

 

📌리눅스/유닉스 운영체제 기본 명령어

uname -a 시스템의 모든 정보를 확인하는 명령어 pmap 프로세스 ID 기준 메모리 맵 정보 출력
uname -r 운영체제 배포 버전 출력 chmod 특정 파일 또는 디렉토리 퍼미션 수정 명령어
uptime 서비스 가동 시간, 현재 사용자 수, 평균 부하량 확인 chown 파일이나 디렉토리 소유자, 소유 그룹 수정 명령어
who 현재 접속 사용자 정보 표시 ifconig 네트워크 인터페이스를 설정하거나 확인하는 명령어
last 부팅부터 현재까지의 모든 사용자 로그인, 로그아웃 정보 표시 tar 여러개의 파일을 하나의 파일로 묶거나 풀 때 사용

 

📌리눅스/유닉스 접근 권한 변경

- 접근 권한 유형: User, Grop, Other

- 파일 접근 모드: R(4), W(2), X(1)

- 접근 권한 기호: +(추가), -(제거), =(지정) 

chmod [-R] 664 파일명 // -R은 하위 디렉토리와 파일의 권한까지 변경

 

11-1-2. 운영체제 핵심 기능

📌운영체제 메모리 관리 기법

  • 입 기법: (When) 주기억 장치에 적재할 다음 프로세스의 반입 시기를 결정하는 기법
  • 배치 기법: (Where) 디스크에 있는 프로세스를 주기억 장치의 어느 위치에 저장할 것인지 결정하는 기법
  • 당 기법: (How) 실행해야 할 프로세스를 주기억 장치에 어떤 방법으로 할당할 것인지 결정하는 기법
  • 체 기법: (Who) 재배치 기법으로 주기억 장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지 결정하는 기법

 

📌메모리 배치 기법

  • 최초 적합 (First-fit): 프로세스가 적재될 수 있는 가용 공간 중에서 첫번째 분할에 할당하는 방식
  • 최적 적합 (Best-fit): 가용 공간 중에서 가장 크기가 비슷한 공간을 선택하여 프로세스를 적재하는 방식
  • 최악 적합 (Worst-fit): 가용 공간들 중 가장 큰 공간에 할당하는 방식

 

📌 프로세스 관리

✏️ 프로세스 상태

  • 생성(Create) 상태: 프로세스 생성된 상태
  • 준비(Ready) 상태: CPU를 할당 받을 수 있는 상태
  • 실행(Running) 상태: 프로세스가 CPU를 할당받아 동작 중인 상태
  • 대기(Waiting) 상태: CPU를 양도하고 입출력 처리가 완료될 때까지 대기 리스트에서 기다리는 상태
  • 완료(Complete) 상태: CPU 할당 받아 주어진 시간 내 완전히 수행을 종료한 상태

✏️ 프로세스 상태 전이

  • 디스패치: 준비상태에 있는 여러 프로세스들 중 실행될 프로세스를 선정하여 CPU를 할당 -> 문맥교환 발생 (준비 -> 실행)
  • 타이머 런 아웃: 지정된 시간이 초과되면 스케쥴러에 의해 PCB 저장, CPU 반납 후 다시 준비 상태로 전이됨(실행 -> 준비)
  • 블록: 실행 상태의 프로세스가 지정된 할당시간을 초과하기전에 입출력이나 기타 사건이 발생하면 CPU를 스스로 반납하고 입출력 완료까지 대기 상태로 전이 (실행 -> 대기)
  • 웨이크 업: 입출력이 종료되면 대기 상태의 프로세스가 준비 상태로 전이 됨 (대기 -> 준비)

 

📌프로세스 스케쥴링 알고리즘

- 프로세스 스케쥴링: CPU를 사용하려는 프로세스 사이의 우선순위를 관리하는 작업

- 주요 용어: 서비스 시간, 응답 시간, 반환시간(대기시간+수행시간),  대기시간(할당 대기까지 큐에 대기하는 시간), 평균 대기시간, 종료시간, 시간 할당량, 응답률 ( (대기시간+서비스시간)/서비스시간)

 

- ✏️프로세스 스케쥴링 유형

 1. 선점형 스케쥴링 알고리즘

 - 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단 시키고 CPU를 점유하는 방식

- 비교적 빠른 응답이 장점이나, 높은 우선순위 프로세스들이 들어오는 경우 오버헤드 초래

✏️ 유형 🌟

  • 라운드 로빈(Round Robin): 프로세스는 같은 크기의 CPU 시간을 할당. 프로세스가 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 다음 대기중인 프로세스로 넘어감. -> 균등한 CPU 점유시간
  • SRT(Shortest Remaining Time First): 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점됨 -> 짧은 수행시간 프로세스 우선 수행
  • 다단계 큐(Multi Level Queue): 작업들을 여러 종류 그룹으로 분할. 여러개의 큐를 이용하여 상위 단계 작업에 의한 하위단계 작업이 선점당함. 각 큐는 자신만의 독자적인 스케쥴링을 가짐
  • 다단계 피드백 큐(Multi Level Feedback Queue): FCFS(FIFO)와 라운드 로빈 스케줄링 기법을 혼합한 것으로, 새로운 프로세스는 높은 순위, 프로세스의 실행 시간이 길어질 수록 점점 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식을 적용 -> 큐마다 다른 시간 할당량

 

 2. 비선점형 스케쥴링 알고리즘

 - 한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 스케쥴링 방식

- 응답시간 예상이 용이하나 짧은 작업을 수행하는 프로세스가 긴 작업 종료시까지 대기 = 기아현상 

✏️ 유형 🌟

  • 우선순위(Priority): 프로세스별로 우선 순위가 주어지고, 우선 순위에 따라 CPU를 할당 -> 주요/긴급 프로세스에 대한 우선 처리
  • 기한부(Deadline): 작업들이 명시된 시간이나 기한 내에 완료되도록 계획 -> 명시된 시간 내에 처리 보장
  • FCFS(First Come First Service): 프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당 = FIFO 
  • SJF(Shortest Job First):  프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시 까지 자원 점유 -> 기아 현상 발생 가능성
  • HRN(Highest Response Ratio Next): 대기중인 프로세스 중 현재 응답률이 가장 높은 것을 선택. 우선순위는 (대기시간+서비스시간)/서비스시간 -> 기아 현상 최소화

 *반환시간 = 종료시간 - 도착시간
 *대기시간 = 반환시간 - 서비스 시간

 

📌교착 상태

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

✏️ 발생조건

  • 상호 배제(Mutual Exclusive): 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없는 상태
  • 점유와 대기(Hold & Wait): 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태
  • 비선점(Non Preemption): 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고, 오직 점유한 프로세스만이 해제 가능한 상태
  • 환형 대기(Circular Wait):  두 개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형을 구성한 상태

✏️ 해결방법

  • 예방, 회피, 발견, 복구

 

📌가상화

- 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술

- 가상화의 종류: 플랫폼 가상화, 리소스 가상화

- 가상화 기술 요소: 컴퓨팅 가상화, 스토리지 가상화, I/O 가상화, 컨테이너, 분산처리 기술, 네트워크 가상화 기술

 

📌 클라우드 컴퓨팅 

- 인터넷을 통해 가상화된 컴퓨터 시스템 리소스 제공하고, 정보를 자신의 컴퓨터가 아닌 클라우드(인터넷)에 연결된 다른 컴퓨터로 처리하는 기술

- 분류: 사설 클라우드(기업 내부), 공용 클라우드, 하이브리드 클라우드

- ✏️컴퓨팅 유형

  • 인프라형 서비스(IaaS; Infrastructure as a Service): 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
  • 플랫폼형 서비스(PaaS; Platform as a Service): 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
  • 소프트웨어형 서비스(SaaS; Software as a Service): 사용자가 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스

 


 

11-2. 네트워크 기초 활용하기

11-2-1. 네트워크 계층 구조 파악

📌 OSI 7계층

  • 응용 계층(Application Layer): 사용자와 네트워크 간 응용 서비스 연결, 데이터 생성,
    • 프로토콜: HTTP, FTP
    • 전송 단위: 데이터
    • 장비: 호스트(PC 등)

 

  • 표현 계층(Presentation Layer): 데이터 형식 설정, 부호 교환, 암/복호화
    • 프로토콜: JPEG, MPEG
    • 전송 단위: 데이터
    • 장비: 호스트(PC 등)

 

  • 세션 계층(Session Layer): 송수신간의 논리적인 연결. 연결 접속, 동기제어
    • 프로토콜: RPC, NetBIOS
    • 전송 단위: 데이터
    • 장비: 호스트(PC 등)

 

  • 전송 계층(Transport Layer): 송수신 프로세스 간의 연결. 신뢰성 있는 통신 보장. 데이터 흐름 제어, 오류 제어
    • 프로토콜: TCP, UDP
    • 전송 단위: 세그먼트(Segment)
    • 장비: L4 스위치

 

  • 네트워크 계층(Network Layer): 단말기 간 데이터 전송을 위한 최적화된 경로 제공
    • 프로토콜: IP, ICMP
    • 전송 단위: 패킷
    • 장비: 라우터

 

  • 데이터 링크계층(Data Link Layer):  인접 시스템 간 데이터 전송, 전송 오류 제어
    • 프로토콜: HDLC, PPP
    • 전송 단위: 프레임(Frame)
    • 장비: 브리지, 스위치(L2)

 

  • 물리 계층(Physical Layer): 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환
    • 프로토콜: RS-232C
    • 전송 단위: 비트(Bit)
    • 장비: 허브, 리피터

 

 

📌 계층별 장비

  • 1계층 장비: 허브(여러 대의 컴퓨터를 연결), 리피터(디지털 신호를 증폭)
  • 2계층 장비: 브리지(LAN을 서로 연결), L2 스위치(프레임을 목적지 MAC 주소 기반으로 빠르게 전송)
  • 3계층 장비: 라우터(LAN-LAN 연결, LAN-WAN 연결, 패킷의 위치를 추출하여 그 위치에 대한 최적 경로 지정), 게이트웨이, L3 스위치, 공유기
  • 4계층 장비: L4 스위치(TCP/UDP 등 스위칭 수행)

 

11-2-2. 네트워크 프로토콜 파악

📌  프로토콜

- 서로 다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위한 표준화된 통신 규약

- 기본 3요소: 구문(Syntax), 의미(Semantic), 타이밍(Timing)

 

📌 데이터 링크 계층(2 계층)

- 링크의 설정과 유지 및 종료를 담당하며 노드 간의 회선 제어, 흐름 제어, 오류 제어 기능을 수행한다.

- ✏️ 데이터 링크 계층 프로토콜

  • HDLC(High-level Data Link Control) : 점대점 방식이나 다중방식 통신에 사용되며, 동기식 비트 중심
  • PPP(Point-to-Point Protocol) : 네트워크 분야에서 두 통신 노드 간의 직접적인 연결
  • 프레임 릴레이(Frame Relay) : 프로토콜 처리를 간략화하여 데이터 프레임들의 중계 기능과 다중화 기능만 수행함으로써 처리속도의 향상 및 전송 지연을 감소시킨 고속 데이터 전송 기술
  • ATM(Asynchronous Transport Mode): 정보전달의 기본 단위를 53바이트 셀 단위로 전달하는 비동기식 시분할 다중화 방식의 패킷형 전송 기술

 

📌 네트워크 계층(3 계층)

- ✏️ 네트워크 계층 프로토콜 🌟

  •  IP(Internet Protocol): 송수신 간의 패킷 단위로 데이터를 교환하는 네트워크에서 정보를 주고받는 데 사용
  • ARP(Adress Resolution Protocol): IP 네트워크상에서 IP주소를 MAC 주소(물리 주소)로 변환하는 프로토콜
  • RARP(Reverse Address Resolution Protocol): MAC 주소는 알지만 IP 주소를 모르는 경우, 서버로부터 IP 주소를 요청하기 위해 사용하는 프로토콜 (MAC 주소 -> IP 주소 변환)
  • ICMP(Internet Control Message Protocol): IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜
  • IGMP(Internet Group Managemnet Protocol): 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는 데 사용하는 통신 프로토콜
  • 라우팅 프로토콜(Routing Protocol): 데이터 전송을 위해 최적의 경로를 설정해주는 라우터 간의 상호 통신 프로토콜

 

📌 IPv4

-  32비트 주소 체계를 갖는 네트워크 계층의 프로토콜이며, 8비트씩 4부분으로 나뉜 10진수

- 헤더 크기가 가변적이며, 전송방식에 유니캐스트, 멀티캐스트, 브로드 캐스트가 있음

- 클래스 분류

A 클래스 0.0.0.0 ~ 127.255.255.255
B 클래스 128.0.0.0 ~ 191.255.255.255
C 클래스 192.0.0.0 ~ 223.255.255.255
D 클래스 224.0.0 ~ 239.255.255.255
E 클래스 240.0.0.0 ~ 255.255.255.255

 

📌 IPv6

- IPv4가 가진 주소 고갈, 보안성, 이동성 지원등의 문제점을 해결하기 위해 개발된 128Bit 주소 체계를 갖는 차세대 인터넷 프로토콜

- 불필요한 헤더를 제거함으로써 단순 고정 헤더 사용

- 16비트씩 8부분으로 나뉜 16진수이며 전송방식에 유니캐스트, 멀티캐스트, 애니 캐스트가 있음

* IPv4에서 IPv6로 전환 방법: 듀얼 스택, 터널링, 주소 변환

 

📌 멀티캐스트, 유니캐스트, 브로드캐스트, 애니캐스트

- 멀티캐스트: 같은 내용의 데이터를 여러명의 특정한 그룹의 수신자들에게 동시에 전송할 수 있는 프로토콜

- 유니캐스트: 단일 송신자와 단일 수신자 간의 통신(1:1 통신에 사용)

- 브로드캐스트(IPv4): 하나의 송신자가 같은 서브네트워크상의 모든 수신자에게 데이터를 전송

- 애니캐스트(IPv6):  그룹 내의 가장 가까운 곳에 있는 수신자에게 데이터 전달

 

📌 라우팅 프로토콜(3 계층)

- RIP(Routing Information Protocol): AS(자율시스템) 내에서 사용하는 거리 벡터 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜. 벨만-포드 알고리즘 사용, 15홉 제한

- OSPF(Open Shortest Path First): 자신을 기준으로 링크 상태 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜. 다익스트라 알고리즘을 사용하며 홉 카운트에 제한이 없음

-  BGP(Border Gateway Protocol): AS상호 간에 경로 정보를 교환하기 위한 라우팅 프로토콜 (링크 상태 알고리즘)

- 라우팅 알고리즘: 목적지까지 최적 경로를 산출하기 위한 법칙

  • 거리 벡터 알고리즘: 인접 라우터와 정보를 공유하며 목적지까지의 거리와 방향을 결정하는 라우팅 프로토콜 알고리즘
  • 링크 상태 알고리즘: 링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리를 구성하는 라우팅 프로토콜 알고리즘

 

📌 전송 계층(4 계층)

- TCP:  근거리 통신망이나 인터넷에서 순서대로, 에러 없이 신뢰성 있는 전송을 수행하는 프로토콜. 

  • 특징: 신뢰성 보장, 연결 지향적 특징, 흐름 제어, 혼잡 제어
  • 헤더의 최소 크기는 20바이트

- UDP: 비연결성이고 신뢰성이 없으며 순서화되지 않는 데이터그램 서비스를 제공하는 통신 프로토콜

  • 특징: 비 신뢰성, 순서화되지 않은 데이터그램 서비스 제공, 실시간 응용 및 멀티캐스팅 가능, 단순 헤더(8바이트) 

 

📌 세션 계층(5 계층)

- 프로세스들의 논리적인 연결을 담당하는 계층. 통신 중 연결이 끊어지지 않도록 유지시켜주는 역할 수행하기 위해 TCP/IP 세션 연결의 설정과 해제, 세션 메시지 전송 등의 기능을 수행

 

📌 응용 계층(7 계층)

  • HTTP: 텍스트 기반의 통신규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜. 하이퍼텍스트를 빠르게 교환
  • FTP: TCP/IP 프로토콜을 가지고 파일을 전송하기 위한 프로토콜
  • SMTP(Simple Mail Transfer Protocol): 인터넷에서 TCP 포트번호 25번을 사용하여 이메일을 보내는 프로토콜
  • POP3(Post Office Protocol ver3): 원격 서버로부터 TCP/IP 연결을 통해 이메일을 가져오는 프로토콜
  • IMAP(Internet Messaging Access Protocol): 원격 서버로부터 TCP/IP 연결을 통해 이메일을 가져오는 프로토콜
  • SSH: 인증, 암호화, 무결성을 제공하고 기본 네트워크 포트는 22번 사용. 강력 보안을 제공하는 원격접속 프로토콜 
  • SNMP(Simple Network Management Protocol): TCP/IP의 네트워크 관리 프로토콜로, 정보를 네트워크 관리 시스템에 보내는데 사용하는 프로토콜  

 

11-2-3. 네트워크 전달 방식

📌 패킷 교환 방식

- 작은 블록의 패킷으로 데이터를 전송하여 데이터를 전송하는 동안만 네트워크 자원을 사용하도록 하는 통신 방식

  • X.25: 통신을 원하는 두 단말장치가 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신 프로토콜(고정된 대역폭 할당. 1~3계층 담당)
  • 프레임 릴레이: ISDN을 사용하기 위한 프로토콜로서 ITU-T에 의해 표준으로 작성(유연한 대역폭. 1~2계층 담당)
  • ATM(Asynchronous Transfor Mode): 비동기 전송 모드, 광대역 전송에 쓰이는 스위칭 기법

 

✏️ 패킷 교환 방식의 종류

  • 데이터그램 방식: 연결 경로를 확립하지 않고 각각의 패킷을 순서에 무관하게 독립적으로 전송. 각각의 패킷은 독립적 취급
  • 가상회선 방식: 패킷이 전송되기 전 송/수신 스테이션 간의 논리적인 통신 경로를 미리 설정하는 방식. 목적지 호스트와 미리 연결 후 통신하는 연결형 교환 방식

 

📌 서킷 교환 방식

- 네트워크 리소스를 특정 사용층이 독점하기 때문에 전송이 보장되는 방식. 서킷을 확보하기 위한 작업을 진행해야한다. 전송 경로를 설정한 뒤 데이터를 송수신하는 방식.

 

📌 애드 혹 네트워크

- 노드들에 의해 자율적으로 구성되는 기반 구조가 없는 네트워크로 네트워크 장치를 필요로 하지 않음. 

- 멀티 홉 라우팅 기능에 의해 무선 인터페이스가 가지는 통신 거리상의 제약을 극복 (군사, 긴급 구조 등에 활용)

 


 

11-3. 기본 개발환경 구축하기

11-3-1. 응용 시스템 개발 인프라 구축

 

📌  개발 환경 인프라 구성 방식

  • 온프레미스(On-Premise) 방식 : 외부 인터넷망이 차단된 상태에서 인트라넷망만을 활용하여 개발환경을 구축하는 방식
  • 클라우드(Cloud) 방식 : 클라우드 공급 서비스를 제공하는 회사들(아마존, 구글, MS 등)의 서비스를 임대하여 개발 환경을 구축하는 방식
  • 하이브리드(Hybrid) 방식 : 온프레미스와 클라우드 방식을 혼용한 방식

 


 

728x90