[정보처리기사 실기] 11장 응용 SW 기초 기술 활용
정보처리기사 수제비 2022 실기 문제집을 요약하며 공부했습니다! 😁
11-1. 운영체제의 특징
11-1-1. 운영체제 종류
📌 운영체제(Operating System)
- 사용자가 컴퓨터의 하드웨어를 보다 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어
- 운영체제는 크게 인터페이스(쉘) + 커널의 구조
✏️특징: 사용자 편리성 제공, 인터페이스 기능 담당, 스케쥴링 담당, 자원 관리, 제어 기능
✏️커널의 기능: 프로세스 관리, 기억장치 관리, 주변장치 관리, 파일 관리
📌유닉스 계열 운영체제
- 데니스 리치와 켄 톰슨등이 함께 벨 연구소를 통해 만든 운영체제, 90% 이상이 C언어로 구현되어 있는 범용 다중 사용자 방식의 시분할 운영체제
✏️유닉스 계열 운영체제 특징
- 대화식 운영체제 기능 제공, 다중 작업 기능 제공, 다중 사용자 기능 제공, 이식성 제공, 계층적 트리 구조 파일 시스템 제공
- 리눅스 운영체제: 유닉스 기반. 소스코드가 공개된 오픈 소스 기반. 데비안, 레드헷, 우분투 등 다양하게 출시 됨
- 맥 운영체제: 애플의 유닉스 기반 그래픽 사용자 인터페이스 기반 운영체제
- 안드로이드 운영체제: 리눅스 기반, 자바와 코틀린 언어, 런타임 라이브러리(컴파일된 바이트 코드 구동 가능), 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) 방식 : 온프레미스와 클라우드 방식을 혼용한 방식