일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch4
- 자바의 정석 기초편 ch13
- 2024 정보처리기사 시나공 필기
- 자바의 정석 기초편 ch8
- 스프링 mvc2 - 검증
- 스프링 mvc2 - 타임리프
- @Aspect
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch1
- 스프링 db2 - 데이터 접근 기술
- 코드로 시작하는 자바 첫걸음
- 스프링 db1 - 스프링과 문제 해결
- 자바의 정석 기초편 ch9
- 자바의 정석 기초편 ch6
- jpa 활용2 - api 개발 고급
- jpa - 객체지향 쿼리 언어
- 자바의 정석 기초편 ch3
- 자바의 정석 기초편 ch14
- 자바의 정석 기초편 ch7
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch5
- 스프링 mvc1 - 서블릿
- 자바의 정석 기초편 ch2
- 2024 정보처리기사 수제비 실기
- 자바의 정석 기초편 ch11
- 스프링 고급 - 스프링 aop
- 타임리프 - 기본기능
- 게시글 목록 api
- 스프링 입문(무료)
- Today
- Total
나구리의 개발공부기록
3장 - 응용 SW 기초 기술 활용 핵심 요약 본문
3장 - 응용 SW 기초 기술 활용 핵심 요약
소소한나구리 2024. 5. 10. 18:592024년도 시나공 필기 책 내용 정리
2024년 5월 12일이 필기 시험이므로 시간이 부족하여 핵심요약만 작성하면서 공부..
본문은 눈으로만 읽고 남은시간은 기출문제에 올인
섹션18. 운영체제의 개념
1. 운영체제의 목적
- 처리 능력(Throughput) : 일정 시간 내에 시스템이 처리하는 일의 양
- 반환 시간(Turn Around Time) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린시간
- 사용 가능도(Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
- 신뢰도(Rliability) : 시스템이 주어진 문제를 정확하게 해결하는 정도
2. 운영체제의 구성
- 제어 프로그램 : 감시 프로그램, 작업 관리 프로그램, 데이터 관리 프로그램
- 처리 프로그램 : 언어 번역 프로그램, 서비스 프로그램
3. 운영체제의 기능
- 프로세서(처리기, Processor), 기억장치(주기억장치, 보조기억장치), 입/출력장치, 파일 및 정보 등의 자원을 관리
- 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공함
- 사용자와 시스템 간의 편리한 인터페이스를 제공
- 시스템의 각종 하드웨어와 네트워크를 관리 및 제어
- 자원 보호 기능을 제공
섹션19. Windows
1. 선점형 멀티태스킹
- 동시에 여러 개의 프로그램을 실행하는 멀티태스킹을 하면서 운영체제가 각 작업의 CPU이용 시간을 제어하여 응용 프로그램 실행중 문제가 발생하면 해당 프로그램을 강제 종료시키고 모든 시스템 자원을 반환하는 방식을 말함
2. PnP(Plug ans Play)
- 컴퓨터 시스템에 프린터나 사운드 카드 등의 하드웨어를 설치했을 때 해당 하드웨어를 사용하는데 필요한 시스템 환경을 운영체제가 자동으로 구성해 주는 기능
섹션20. UNIX / LINUX / MacOS
1. UNIX의 특징
- 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높음
- 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원함
- 많은 네트워킹 기능을 제공하므로 통신망(Network) 관리용 운영체제로 적합함
- 트리 구조의 파일 시스템을 갖음
- 전문적인 프로그램 개발에 용이함
2. 커널(Kernel)
- UNIX의 가장 핵심적인 부분
- 하드웨어를 보호(캡슐화)하고, 프로그램들과 하드웨어간의 인터페이스 역할을 담당함
- 기능 : 프로세스 관리, 기억장치 관리, 파일 관리, 입/출력관리, 프로세스 간 통신, 데이터 전송 및 변환 등
3. 쉘(Shell)
- 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
- 시스템과 사용자 간의 인터페이스를 담당함
- DOS의 COMMAND.COM과 같은 기능을 수행함
- 주기억장치에 상주하지 않고 명령어가 포함된 파일 형태로 존재하며 보조기억장치에서 교체 처리가 가능
4. 파일 디스크립터
- 파일 제어 블록(FCB; File Control Block)이라고도 함
- 파일마다 독립적으로 존재하며 시스템에 따라 다른 구조를 가질 수 있음
- 보조기억장치 내에 저장되어 있다가 해당 파일이 Open될 때 주기억장치로 옮겨짐
- 파일 시스템이 관리하므로 사용자가 직접 참조할 수 없음
섹션21. 기억장치 관리의 개요
1. 기억장치 관리 전략
- 종류 : 반입(Fetch) 전략, 배치(Placement) 전략, 교체(Replacement) 전략
- 배치 전략의 종류
최초 적합(First Fit) | 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치 |
최적 적합(Best Fit) | 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치 |
최악 적합(Worst Fit) | 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 크게 남기는 분할 영역에 배치 |
섹션22. 가상기억장치 구현 기법 / 페이지 교체 알고리즘
1. 페이징(Paging)기법
- 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영약(페이지 프레임)에 적재시켜 실행하는 기법
2. 세그먼테이션(Segmentation) 기법
- 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법
3. 페이지 교체 알고리즘
- 페이지 부재(Page Fault)가 발생했을 때 가상기억장치의 필요한 페이지를 주기억장치에 적재할 때 주기억장치의 모든 페이지 프레임이 사용중이면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법\
- 종류 : OPT, FIFO, LRU, LFU, NUR, SCR 등
4. 페이지 교체 알고리즘 - FIFO
- 각 페이지가 주기억장치에 적재될 때 마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법
ex) FIFO 알고리즘을 사용하여 페이지 프레임을 교체했을 때 페이지 부재의 수(초기 페이지프레임은 비어있음)
- 페이지 부재의 수 = 6
참조 페이지 | 2 | 3 | 2 | 1 | 5 | 2 | 3 | 5 |
페이지 프레임 |
2 | 2 | 2 | 2 | 5 | 5 | 5 | 5 |
3 | 3 | 3 | 3 | 2 | 2 | 2 | ||
1 | 1 | 1 | 3 | 3 | ||||
부재 발생 | ● | ● | ● | ● | ● | ● |
5. 페이지 교체 알고리즘 - LRU
- 각 페이지마다 계수기(Counter)나 스택(Stack)을 두어 현 시검에서 가장 오랫동안 사용하지 않은(가장 오래 전에 사용된 페이지)를 교체
ex) LRU 알고리즘을 사용하여 페이지 프레임을 교체했을 때 페이지 부재의 수(초기 페이지프레임은 비어있음)
- 페이지 부재의 수 = 5
참조 페이지 | 2 | 3 | 2 | 1 | 5 | 2 | 3 | 5 |
페이지 프레임 |
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
3 | 3 | 3 | 5 | 5 | 5 | 5 | ||
1 | 1 | 1 | 3 | 3 | ||||
부재 발생 | ● | ● | ● | ● | ● |
섹션23. 가상기억장치 기타 관리 사항
1. 페이지 크기가 작을 경우
- 페이지 단편화가 감소되고 한 개의 페이지를 주기억장치고 이동하는 시간이 줄어듦
- 불필요한 내용이 주기억장치에 적재될 확률이 적으므로 효율적인 워킹 셋을 유지할 수 있음
- Locality에 더 일치할 수 있기 때문에 기억장치 효율이 높아짐
- 페이지 정보를 갖는 페이지 맵 테이블의 크기가 커지고 매핑 속도가 늦어짐
- 디스크 접근 횟수가 많아져서 전체적인 입/출력 시간은 늘어남
2. Locality
- 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론
- 시간 구역성이 이루어지는 장소 : Loop(반복, 순환), 스택(Stack), 부 프로그램(Sub Routine), Counting(1씩 증감), 집계(Totaling)에 사용되는 변수(기억장소)
- 공간 구역성이 이루어지는 기억장소 : 배열 순회(Array Traversal, 배열 순례), 순차적 코드의 실행, 프로그래머들이 관련된 변수(데이터를 저장할 기억장소)들을 서로 근처에 선언하여 할당되는 기억장소, 같은 영역에 있는 변수를 참조할 때 사용
3. 워킹 셋(Working Set)
- 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
4. 스래싱(Thrasing)
- 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
섹션 24. 프로세스의 개요
1. 프로세스의 정의
- PCB를 가진 프로그램
- 실기억장치에 저장된 프로그램
- 프로세서가 할당되는 실체로서, 디스패치가 가능한 단위
- 프로시저가 활동중인 것
- 비동기적 행위를 일으키는 주체
- 지정된 결과를 얻기 위한 일련의 계통적 동작
- 목적 또는 결과에 따라 발생되는 사건들의 과정
- 운영체제가 관리하는 실행 단위
2. 프로세스 상태 전이
- 제출(Submit) : 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
- 접수(Hold) : 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태
- 준비(Ready) : 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
- 실행(Run) : 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
- 대기(Wait), 보류, 블록(Block) : 프로세스에 입/출력 처리가 필요하면 현재 실행중인 프로세스가 중단되고, 입/출력 처리가 완료될 때까지 대기하고 있는 상태
- 종료(Terminated, Exit) : 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태
3. Dispatch
- 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정
4. 스레드의 특징
- 실행 환경을 공유시켜 기억장소 및 자원의 낭비가 줄어듦
- 하나의 프로세스를 여러 개의 스레드로 생성하여 병행성을 증진시킬 수 있음
- 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상 시킬 수 있음
- 스레드는 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스라고도 함
- 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신함
- 하나의 프로세스에 하나의 스레드가 존재하는 경우에는 단일 스레드, 하나 이상의 스레드가 존재하는 경우에는 다중 스레드라고함
섹션25. 스케줄링
1. 비선점(Non-Preemptive) 스케줄링
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
- 프로세스가 CPU를 할당받으면 해당 프로세스가 완료 될 때 까지 CPU를 사용
- 모든 프로세스에 대한 요구를 공정하게 처리할 수 있음
2. 선점(Preemptive) 스케줄링
- 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
- 우선순위가 높은 프로세스를 빠르게 처리할 수 있음
- 주로 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 사용됨
- 많은 오버헤드(Overhead)를 초래함
섹션26. 주요 스케줄링 알고리즘
1. SJF(Shortest Job First)
- 스케줄링 하고자 하는 세 작업의 도착시간과 실행시간이 다음 표와 같을 때 SJF로 작업을 스케줄링하였을 때 작업2의 종료 시간은?
작업 | 도착시간 | 실행시간 |
1 | 0 | 6 |
2 | 1 | 3 |
3 | 2 | 4 |
- SJF는 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법, 그러나 처음에 도착한 작업 1은 다른 작업과 실행시간을 비교할 수 없으므로 실행시간에 상관없이 먼저 수행 됨 (반환시간 = 실행시간 + 대기시간)
- 작업1 : 도착하자마자 실행되어 6에서 작업이 완료됨, 대기시간은 0이고 반환시간은 6
- 작업2 : 1에 도착하여 작업1이 완료될 때까지 대기한 후 작업1이 완료되는 6에서 실행을 시작하여 9에 작업이 완료, 대기시간은 5, 반환시간은 8
- 작업3 : 2에 도착하여 작업 2가 완료될 때까지 대기한 후 작업2가 완료되는 9에서 실행을 시작하여 13에 작업이 완료, 대기시간은 7, 반환시간은 11
2. HRN(Hightest Response-ratio Next)
- HRN방식으로 스케줄링, 다음 표의 작업의 우선순위가 가장 높은 작업은?
작업 | 대기시간 | 서비스시간 |
A | 5 | 5 |
B | 10 | 6 |
C | 15 | 7 |
D | 20 | 8 |
- HRN 방식의 우선순위 계산식은 대기시간 + 서비스시간 / 서비스 시간 이므로 대입해서 계산
- A작업 = 5 + 5 / 2 = 2
- B작업 = 10 + 6 / 6 = 2.6
- C작업 = 15 + 7 / 7 = 3.1
- D작업 + 20 + 8 / 8 = 3.5
- 결과값이 큰 작업이 우선순위가 높으므로 D작업이 가장 우선순위가 높음
섹션27. 환경 변수
1. UNIX / LINUX의 주요 환경 변수
- UNIX나 LINUX에서 환경 변수를 명령어나 스크립트에서 사용하려면 변수명 앞에 '$'를 입력해야함
- set, env, printenv, setenv 중 하나를 입력하면 모든 환경 변수와 값을 표시함
섹션28. 운영체제 기본 명령어
1. UNIX의 주요 명령어
- fork : 새로운 프로세스를 생성함(하위 프로세스 호출, 프로세스 복제 명령)
- uname : 시스템의 이름과 버전, 네트워크 호스트명 등의 시스템 정보를 표시함
- wait : fork 후 exec에 의해 실행되는 프로세스의 상위 프로세스가 하위 프로세스 종료 등의 event를 기다림
- chmod : 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정
- ls : 현재 디렉터리 내의 파일 목록을 확인
- cat : 파일 내용을 화면에 표시
- chown : 소유자를 변경함
섹션29. 인터넷
1. IP 주소
- 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소
- 숫자로 8비트씩 4부분 총 32비트로 구성되어있음
- IP주소는 네트워크 부분의 길이에 따라 A클래스에서 E클래스까지 총 5단계로 구성되어있음, ex) C클래스 : 192 ~ 223 으로 시작
2. 서브네팅의 예
- 192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 3개의 Subnet으로 나누기(IP Subnet-Zero를 적용, 서브넷부분이 모두 0인 주소도 사용 가능하다는 뜻)
- 1의 개수가 24 = C클래스에 속하는 네트워크
- 11111111 . 11111111. 11111111. 00000000 = 255.255.255.0 (서브넷마스크)
- 서브넷 마스크를 Subnet으로 나눌 때는 서브넷 마스크가 0인부분(마지막8비트)를 이용하면 됨
- 3개로 Subnet을 나눠야하므로 00000000 8자리중 왼쪽부터 3을 표현할 2자리를 제외하고 나머지 6자리를 호스트로 구성, 00 (3을 표현) | 000000 (호스트 구성)
- FLSM(Fixed Length Subnet Mask)로 구성하면 고정된 크기로 주소를 할당하고, 호스트ID는 6bit로 설정되었으므로 3개의 네트워크개 64개(2⁶)씩 고정된 크기로 할당
- 192.168.1.0 ~ 63(00111111) / 64개
- 192.168.1.64 ~ 127(01111111) / 64개
- 192.168.1.128 ~ 191(10111111) / 64개
3. IPv6
- IPv4의 주소 부족 문제를 해결하기 위해 개발된 것으로 16비트씩 8부분, 총 128비트로 구성되며 각 부분을 16진수로 표현하고 콜론(:)으로 구분하며 IPv4보다 빠름
- 주소의 확장성, 융통성, 연동성이 뛰어남
- 등급별, 서비스별로 패킷을 구분할 수 있어 품질 보장이 용이함
- IPv4를 IPv6로 전환하는 전략
- 듀얼 스택(Dual Stack) : 호스트에서 IPv4와 IPv6을 모두 처리할 수 있도록 두개의 스택을 구성하는 것
- 터널링 (Tunneling) : IPv6망에서 인접한 IPv4 망을 거쳐 다른 IPv6망으로 통신할 때 IPv4망에 터널을 만들어 IPv6 패킷이 통과할 수 있도록 하는 것
- IPv4/IPv6 변환 : 헤더 변환, 전송 계층 릴레이 방식, 응용 계층 게이트웨이 방식
4. IPv6 주소체계
- 유니캐스트(Unicast) : 단일 송신자와 단일 수신자 간의 통신 (1 대 1 통신에 사용)
- 멀티캐스트(Multicast) : 단일 송신자와 다중 수신자 간의 통신 (1 대 다 통신에 사용)
- 애니캐스트(Anycast) : 단일 송신자와 가장 가까이 있는 단일 수신자 간의 통신 (1 대 1 통신에 사용)
섹션30. OSI 참조 모델
1. 물리 계층
- 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의
- 프로토콜 : RS-232C, X, 21 등
- 단위 : 비트
2. 데이터 링크 계층
- 2개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 함
- 흐름 제어, 프레임 동기화, 오류 제어, 순서 제어 등을 수행
- 프로토콜 : HDLC, LAPB, PPP, LLC 등
- 단위 : 프레임
3. 네트워크 계층
- 개방 시스템들 간의 네트워크 연결을 관리(네트워크 연결을 설정, 유지, 해제)하고 데이터를 교환 및 중계함
- 경로 설정(Routing), 트래픽 제어, 패킷 정보 전송 등을 수행함
- 단위 : 패킷
4. 전송 계층
- 종단 시스템(End-to-End) 간에 투명한 데이터 전송을 가능하게 함
- 전송 연결 설정, 데이터 전송, 연결 해제 기능, 주소 설정, 다중화(데이터의 분할과 재조립), 오류 제어, 흐름 제어 등을 수행함
- 단위 : 세그먼트
5. 세션 계층
- 송/수신 측 간의 관련성을 유지하고 대화 제어를 담당함
- 대화 구성 및 동기 제어, 데이터 교환 관리 기능을 함
- 송/수신 측 간의 데이터 전송, 연결 해제, 동기 처리 등의 대화를 관리하기 위해 토큰이 사용됨
- 단위 : 메세지 (표현,애플리케이션 계층도 동일)
섹션31. 네트워크 관련 장비
1. 브리지 : LAN과 LAN을 연결하거나 LAN안에서 컴퓨터 그룹(세그먼트)을 연결하는 기능을 수행
2. 스위치 : 브리지와 같이 LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치
3. 라우터 : 브리지와 같이 LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택할 수 있는 기능이 추가된 것으로 서로 다른 LAN이나 LAN과 WAN의 연결도 수행함
4. 브라우터 : 브리지와 라우터의 기능을 모두 수행하는 장치, 브리지 기능은 내부 네트워크를 분리하는 용도로 사용하고 라우터 기능은 외부 네트워크에 연결하는 용도로 사용
5. 전처리기 : 통신 회선 및 단말장치 제어, 메세지의 조립과 분해, 전송 메세지 검사 등을 미리 수행하여 컴퓨터의 부담을 줄여 주는 역할을 함
섹션32. TCP/IP
1. TCP
- 신뢰성(안정성) 있는 연결형 서비스를 제공
- 순서 제어, 오류 제어, 흐름 제어 기능을 제공
- 양방향 연결형 서비스를 제공
- 스트림(Stream) 전송 기능을 제공
2. IP
- 비연결형 서비스를 제공
- Best Effort 원칙에 따른 전송 기능을 제공
- 주소 지정, 경로 선택 기능을 제공
- 헤더의 길이는 최소 20Byte에서 최대 60Byte
3. MQTT
- 발행 - 구독 기반의 메세징 프로토콜로 IoT환경에서 자주 사용됨
4. UDP
- 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스를 제공
- 흐름 제어나 순서 제어가 없어 전송 속도가 빠름
- 실시간 전송에 유리(스트리밍 등)하며, 신뢰성 보다는 속도가 중요시되는 네트워크에서 사용
5. ICMP
- IP와 조합하여 통신중에 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메세지를 관리하는 역할을 하며 헤더는 8Byte로 구성됨
6. ARP
- 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC Address)로 변경
7. CSMA/CD
- IEEE 802.3 LAN에서 사용되는 전송 매체 접속 제어(MAC) 방식
'2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비) > 필기 4강 - 프로그래밍 언어 활용' 카테고리의 다른 글
2장 - 프로그래밍 언어 활용 핵심 요약 (0) | 2024.05.10 |
---|---|
2장 - 프로그래밍 언어 활용 | 섹션15. 스크립트 언어, 섹션16. 라이브러리, 섹션17. 예외 처리 (0) | 2024.05.10 |
2장 - 프로그래밍 언어 활용 | 섹션13. Python의 기초, 섹션14. Python의 활용 (0) | 2024.05.10 |
2장 - 프로그래밍 언어 활용 | 섹션10. 배열과 문자열, 섹션11. 포인터, 섹션12. 구조체 (0) | 2024.05.10 |
2장 - 프로그래밍 언어 활용 | 섹션7. 데이터 입/출력, 섹션8. 제어문, 섹션9. 반복문 (0) | 2024.05.09 |