정보처리기사
대표 라이브러리
C언어
- stdio.h: 데이터 입출력
- stdlib.h: 자료형 변환, 메모리 할당
- string.h: 문자열
- strcpy(s1, s2): s2를 s1으로 복사
- strcat(s1, s2): s1과 s2를 연결JAVA
- java.lang: 자바에 기본적으로 필요한 인터페이스, 자료형, 예외 처리 등에 관련된 기능을 제공
- java.util: 날짜 처리, 난수 발생, 문자열 처리 등
- java.net: 네트워크 관련된 기능을 제공
- java.awt: 사용자 인터페이스(UI)와 관련된 기능을 제공
데이터 타입
Python
- 시퀀스 자료형
- 튜플(Tuple): 쉼표(,)로 구분된 객체들로 이루어지는 불변(immutable) 자료형
- 리스트(List): 항목을 쉼표로 구분하며 대괄호 [ ]로 감싸 객체를 만드는 가변(mutable) 자료형
- 컬렉션 자료형
- 셋(Set): 중괄호 { }를 이용하여 선언하며 가변(mutable)이며 중복 요소가 없고 정렬되지 않은 자료형
- 딕셔너리(Dictionary): 중괄호 { }를 이용하여 key:value를 선언하며 가변(mutable) 자료형
IP Header
- Version: IP 프로토콜의 version
- Type of Service: IP 데이터그램(=IP 패킷, IP프로토콜에서 데이터가 전달되는 기본 단위)의 서비스, FTP나 DNS, SMTP 같은 서비스의 유형 표시
- identification: 패킷이 전송될 때 구분을 하기 위해서 붙은 식별 번호, IP 데이터그램이 단편화되었을 때 단편화된 데이터그램이 원래 어떤 데이터그램에 속해 있는 지를 알 수 있음
- Flags(3): 프래그먼트 패킷의 상태나 생성 여부를 결정, IP 데이터그램이 단편화됬는지 안됬는지 알 수 있음
- Fragmentation Offset(13): 조각나기 전 원래의 데이터그램의 바이트 범위
- Time-to-live: IP패킷의 수명으로 패킷을 전송하기 전 네트워크에서 생존할 수 있는 시간
- Header-Checksum(16): 데이터 checksum이 아닌 IP protocol header에 대한 checksum
TCP Header
- Source Port: 세그먼트의 출발지를 나타내는 전송 포트
- Destination Port: 세그먼트의 목적지를 나타내는 수신 포트
- Sequence Number: 전송하는 데이터 순서, 수신 측에서 Sequence Number로 순서를 파악해서 다시 올바른 순서로 재조립
- Acknowledge Number: 다음에 수신될 것으로 예상되는 세그먼트의 번호
- Header Length(4): HLEN, 데이터가 시작되는 위치가 어디인지를 나타내서 이 값을 통해 데이터의 시작 위치를 알 수 있음
- Reserve(6): 미래를 위해 남겨놓는 필드
- Flag Bits(6): 데이터를 관리하거나 제어
- URG 플래그: Urgent, 이 포인터가 가리키는 긴급한 데이터는 제일 먼저 처리
- ACK 플래그: Acknowledgment number, 필드에 값이 채워져 있음
- PSH 플래그: TCP 버퍼가 일정한 크기만큼 쌓여야 전송을 하는데 버퍼를 채우지 않고 바로 전송을 수행(push) 하는 플래그
- RST 플래그: 이미 TCP 연결이 되어 있을 때 이 연결을 강제로 해제하기 위해 사용
- SYN 플래그: 상대방과 연결을 생성할 때, 시퀀스 번호의 동기화를 맞추기 위하여 사용
- FIN 플래그: 연결 종료(전송할 데이터가 없음)를 의미
- Window Size(16): 자신의 수신 버퍼 여유용량 크기를 통보해 얼만큼의 데이터를 받을 수 있는지 상대방에게 알려주어 흐름제어
- Checksum: 데이터를 송신하는 중에 발생할 수 있는 오류를 검출
- Urgent Pointer: 이 포인터가 가리키는 데이터는 긴급한 데이터로 처리되어 제일 먼저 처리
프로세스 스케쥴링
: 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에 할당하는 작업
- 비선점(Non-Preemptive): 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
- FCFS: First Come First Served,
- SJF: Shortest Job First
- 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘
- 실행 시간이 긴 프로세스는 실행 시간이 짧은 프로세스에게 할당 순위가 밀려 무한 연기 상태(기아 현상)가 발생 ▶ (대안) HRN
- HRN: Hightest Response-ratio Next
- 대기 시간과 서비스(실행) 시간을 이용하는 기법
- 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으로 우선순위가 부여
- (대기 시간 + 실행 시간)/(실행 시간)
- 우선순위
- 기한부
- 선점(Preemptive): 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
- Round Robin: 프로세스는 할당된 시간 동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에 CPU를 넘겨주고 큐의 뒤로 배치
- SRT: Shortest Remaining Time
- MLQ(다단계 큐): 그룹에 따라 각기 다른 준비상태 큐를 사용
- MFQ(다단계 피드백 큐): 그룹화 된 큐마다 실행 시간을 부여하여 시간 내 실행이 완료되지 않을 경우 프로세스에 CPU를 넘겨주고 큐의 뒤로 배치
Routing Protocol
- EGP: 외부 게이트웨이 프로토콜
- BCG: Board Gateway Protocol
- IGP: 내부 게이트웨이 프로토콜
- Distance Vector
- RIP: Routing Information Protocol, 인접한 라우터간 일정 시간마다 상태 공유
- Link State
- OSPF: Open Shortest Path First, 변경된 데이터가 있을 때마다 상태 공유, 가장 많이 사용되는 내부 라우팅 프로토콜
- Distance Vector
OSI 7 Layer Model
- 물리 계층(Physical Layer)
- 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환
- 단위: 비트
- 주요 장비: 허브, 리피터 등
- 데이터 링크 계층(Data Link Layer)
- 인접 시스템 간 데이터 전송, 전송 오류 제어를 통한 신뢰성 구축
- 단위: 프레임
- 주요 장비: 스위치, 브릿지 등
- 네트워크 계층(Network Layer)
- 단말기 간 데이터 전송을 위한
최적화된 경로 제공 - 단위: 패킷
- 주요 장비: 라우터
- 프로토콜
- IP: 데이터 전달
- ICMP: IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜
- ARP: 논리 주소인 IP 주소 ▶ 실제적인 물리 주소인 MAC 주소로 변환
- RARP: 실제적인 물리 주소인 MAC 주소 ▶ 논리 주소인 IP 주소로 변환
- 단말기 간 데이터 전송을 위한
- 전송 계층(Transport Layer)
- 송수신 프로세스(종단) 간의 연결. 신뢰성 있는 통신 보장
- 단위: 세그먼트
- 프로토콜
- TCP
- telnet(23): 원격 컴퓨터 간
- FTP(20-데이터, 21-제어): 파일 전송
- HTTP(80): 웹 서비스
- SMTP(25): 메일 전송
- POP3(110): 메일 수신
- UDP
- DHCP: IP 자동 할당
- SNMP: 네트워크 관리
- DNS(53): 도메인 ▶ IP 주소로 변환
- TCP
- 세션 계층(Session Layer)
- 송수신 간의 논리적 연결
- 단위: 데이터
- 표현 계층(Presentation Layer)
- 데이터 형식 설정, 암/복호화
- 단위: 데이터
- 응용 계층(Application Layer)
- 일반적인 응용 서비스를 수행
- 단위: 데이터
소프트웨어 3R
- 역공학(Reverse-Engineering)
: 기존 개발된 시스템의 코드나 데이터로부터 설계 명세서나 요구 분석서 등을 도출하는 작업 - 재공학(Re-Engineering)
: 소프트웨어의 위기를 해결하기 위해 개발의 생산성이 아닌 유지 보수의 생산성으로 해결하려는 방법 - 재사용(Re-Use)
응집도
: 모듈 내부의 기능적인 집중 정도
- 우연적: 모듈 내부의 각 구성요소들이 연관이 없을 경우
- 논리적: 유사한 성격을 갖는 요소들이 한 모듈에서 처리
- 시간적: 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리
- 절차적: 모듈 안의 구성요소들이 그 기능을 순차적으로 수행
- 통신적: 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여있을 경우
- 순차적: 모듈 내에서 한 활동으로 부터 나온 출력값을 다른 활동이 사용할 경우
- 기능적: 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
결합도
: 모듈과 모듈간의 상호 의존 정도
- 자료(데이터): 모듈간의 인터페이스 전달되는 파라미터를 통해서만 모듈간의 상호 작용이 일어나는 경우
- 스탬프: 모듈간의 인터페이스로 배열이나 오브젝트, 스트럭쳐등이 전달되는 경우
- 제어: 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우
- 외부: 어떤 모듈에서 반환한 값을 다른 모듈에서 참조해서 사용하는 경우
- 공통: 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역변수를 갱신하는 식으로 상호작용하는 경우
- 내용: 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용 하는 경우
페이지 교체 알고리즘 (Page Replacement Algorithm)
LRU(Least Recently Used)
: 가장 오랫동안 사용하지 않은 페이지를 교체하는 알고리즘
OPT(Optimal)
: 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체
MFU(Most Frequently User)
: 참조 횟수가 가장 많은 페이지를 교체
Thread
사용자 수준에서의 Thread
- 커널 수준에서의 Thread 관리 X
- 동시성 지원 X
- 커널 모드로의 전환 없이 스레드 교환이 가능하므로 오버헤드가 줄어듦
참고 자료
'Certificate > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 2022년 1회차 (1)소프트웨어 설계 (0) | 2023.07.08 |
---|---|
[정보처리기사] 2022년 2회차 (5)정보시스템 구축관리 (0) | 2023.07.07 |
[정보처리기사] 2022년 2회차 (3)데이터베이스 설계 (0) | 2023.07.06 |
[정보처리기사] 2022년 2회차 (2)소프트웨어 개발 (0) | 2023.07.06 |
[정보처리기사] 2022년 2회차 (1)소프트웨어 설계 (0) | 2023.07.06 |