자격증 ⁺₊

정보처리기사 필기 4과목 정리 - 프로그래밍 언어 활용

by ₊⁺우산이끼⁺₊ 2024. 5. 22.
반응형

C, Python, Java 코드 문제는 실기 공부하면서 직접 코드 작성도 해보는 게 기억에 잘 남습니다.

if문 비교

C Python
if
else if
else
if
elif
else

C언어 표준 라이브러리

stdio.h 표준 입출력
math.h 수학
string.h 문자열 처리
stdlib.h 자료형 변환, 난수, 메모리 할당(malloc)
time.h 시간

문자열 처리 함수

strlen(): string length 문자열 길이
strcpy(): string copy 문자열 복사
strcat(): string concatenate 문자열 연결
strcmp(): string compare 문자열 비교
strrev(): string reverse 문자열 뒤집기

UNIX

대부분 C언어로 작성, 이식성 우수
여러 작업 병행 처리 가능
두 사람 이상의 사용자가 동시에 시스템 사용 가능

UNIX 시스템 구성

커널(Kernel) 쉘(Shell) Utility Program
부팅될 때 주기억장치에 적재된 후 상주하면서 실행.
프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등. 하드웨어 보호, 프로그램과 하드웨어 간의 인터페이스 역할.
명령어 해석기, 시스템과 사용자 간의 인터페이스 역할, 명령어가 포함된 파일 형태로 존재, 파이프라인 기능 지원 응용 프로그램 처리
DOS에서의 외부 명령어에 해당

UNIX/LINUX 기본 명령어

*ch~ : 변경하는 명령어(change)

  • cat: 파일 내용 표시
  • chdir: 현재 사용할 디렉터리 위치 변경 (change directory)
  • chmod: 파일의 보호 모드 설정(change mode)
  • chown: 소유자 변경(change owner)
  • cp: 파일 복사(copy)
  • exec: 새로운 프로세스 수행
  • find: 파일 찾기
  • fork: 새로운 프로세스 생성
  • fsck: 파일 시스템 검사 및 보수
  • getpid: 자신의 프로세스 아이디를 얻음
  • getppid: 부모 프로세스 아이디를 얻음
  • ls: 현재 디렉터리의 파일 목록 확인(list)
  • mount/unmount: 파일 시스템을 마운팅함/마운팅 해제함.
  • rm: 파일 삭제(remove)
  • wait: fork 후 exec에 의해 실행되는 프로세스의 상위 프로세스가 하위 프로세스 종료 등의 event를 기다림

가상기억장치 구현 방법

Paging: 일정한 블록으로 나눔
Segmentation: 가변적 크기의 블록으로 나눔.

페이징(Paging) 기법 - 페이지 교체 알고리즘

OPT(OPTimal replacement) 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체.
페이지 부채 횟수가 가장 적게 발생
FIFO(First In First Out) 이해하기 쉽고 설계 간단함.
LRU(Least Recently Uesed) 최근에 가장 오랫동안 사용하지 않은 페이지를 교체.
각 페이지마다 Counter나 Stack을 둠.
LFU(Least Frequently Used) 사용 빈도가 가장 적은 페이지를 교체.

페이지 결함(부재) 발생 횟수: 안에 원하는 페이지가 없으면 결함이 발생함.

(예) 3개의 페이지 프레임을 갖는 시스템에서 페이지 참조 순서가 1, 2, 1, 0, 4, 1, 3일 때 FIFO 알고리즘을 사용할 경우
처음 상태: X X X (빈 프레임)
1 참조: 1 X X →1이 없었으므로 결함 발생
2 참조: 1 2 X →2가 없었으므로 결함 발생
1 참조: 1 2 X →1이 있으므로 넘어감
0 참조: 1 2 0 →0이 없었으므로 결함 발생
4 참조: 4 2 0 →4가 없었으므로 결함 발생, 1, 2, 0 중에 가장 처음 들어왔던 1 삭제
1 참조: 4 1 0 →1이 없었으므로 결함 발생, 4, 2, 0 중에 가장 처음 들어왔던 2 삭제
3 참조: 4 1 3 →3이 없었으므로 결함 발생, 4, 1, 0 중에 가장 처음 들어왔던 3 삭제
▶페이지 결함 발생 횟수: 6회, 프레임의 최종상태: 4 1 3

스케줄링 알고리즘

FCFS(First Come Fist Service)
 = FIFO(First In First Out)
먼저 도착한 것을 먼저 처리
SJF(Shortest Job First) 준비상태 큐의 프로세스 중 실행 시간이 가장 짧은 프로세스에게 먼저 CPU 할당
가장 적은 평균 대기 시간
HRN(Highest Response-ratio Next) 서비스 실행 시간이 짧거나 대기 시간이 긴 프로세스일수록 우선순위가 높아짐.
우선순위 점수가 높은 것부터 우선순위 부여.
*우선순위 = (대기 시간 + 서비스 시간) / 서비스 시간

IP 주소

8비트씩 4부분, 총 32비트로 구성
0 ~ 128 ~ 192 ~ 224 ~ 239
   A       B       C       D Class, 실험적 주소 E Class

IPv6
- 128비트 주소 사용 → IPv4보다 빠른 전송 속도
- 인증성, 기밀성, 데이터 무결성 지원
- 확장성, 융통성, 연동성이 뛰어남
- 패킷 크기 확장 가능. 제한X
- 패킷 헤더는 40byte로 고정되어 있음.(IPv4는 헤더가 가변적)

IPv4 IPv6
32비트 주소
패킷 헤더 가변적
128비트 주소
패킷 헤더 40byte(320bit)로 고정
보안성 강화
유니캐스트, 멀티캐스트, 애니캐스트 사용

OSI 참조 모델

계층 이름 설명 PDU
1 물리 계층(Physical Layer) 기계적, 전기적, 기능적 절차적 특성에 대한 규칙 정의 Bit
2 데이터링크 계층(Datalink Layer) 신뢰성 있고 효율적인 정보 전송을 위한 시스템 연결 설정과 유지 및 종료
- 흐름 제어 기능
- 프레임 동기화 기능
- 오류 제어 기능
Frame
3 네트워크 계층(Network Layer) 네트워크 연결 관리 기능, 데이터의 교환 및 중계 기능
경로 설정(Routing), 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송
IP(Internet Protocol), IPSec, ICMP, IGMP, ARP, RARP
Packet
4 전송 계층(Transport Layer) 종단 시스템(End-to-End) 간의 전송 연결 설정, 데이터 전송, 연결 해제 기능
주소 설정, 다중화(분할 및 재조립), 오류 제어, 흐름 제어
TCP(Transmission Control Product), UDP, ECN, SCTP, DCCP
Segment
5 세션 계층(Session Layer) 송·수신 측 간의 관련성 유지, 대화 제어, 데이터 교환 관리 Data
6 표현 계층(Presentation Layer) 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환
코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 포맷 변환, 문맥 관리
7 응용 계층(Application Layer) 사용자가 OSI 환경에 접근할 수 있도록 서비스 제공
- FTP(File Transfer Protocol)
- SMTP(Simple Mail Transfer Protocol)
- TELNET
HTTP, FTP, IRC, SSH, DNS

*PDU(Protocol Data Unit): 프로토콜에서 사용하는 데이터 단위

스레싱과 스레드

  • 스레싱(Thrashing): 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
  • 스레드(Thread): 프로세스 내에서의 작업 단위. 시스템의 러 자원을 할당받아 실행하는 프로그램의 단위.
반응형

댓글