https://devinus.tistory.com/29
230122추가 : 다빈도 내용은 빨간글씨 처리합니다 (회색바탕은 개인적 중요도를 나타냄)
모듈
- SW 성능 향상, 수정, 용이한 재사용을 위해 기능 단위로 분해한 것
- 독립성 높을수록 오류 발견 쉬움
[ 응집도 ] (높순) 기순통 절시논우
- 한 모듈 내 처리요소 간 연관정도
- 클래스 목적에 부합하는 같은 기능영역의 함수들로 구성
- Functional 기능적 : 모든 기능 요소가 단일 문제와 연관되어 수행
- Sequential 순차적 : 활동으로 나온 출력 데이터를 다음 활동 입력 데이터로 활용
- Communication 교환적 = 통신적 : 동일 입출력을 사용해도 서로 다른 기능을 수행함
- Procedural 절차적 : 다수 기능 보유시 순차적 수행
- Temporal 시간적 : 특정 시간에 처리되는 몇 개 기능 모음을 모듈화
- Logical 논리적 : 유사성격/특정형태 <= 분리
- Coincidental 우연적 : 비관련 요소로 구성
[ 결합도 ] 내 공 외 제 스 자
- 모듈 외 처리요소 사이 상호 의존도
- 서로 다른 상위 모듈에 의해 호출되어 처리상 연관성 없는 서로 다른 기능 수행
- Content 내용 : 내부 기능 및 자료를 직접 참조
- Common 공통 : 공유되는 데이터 영역을 여러 모듈이 사용/변경 시 모든 모듈에 영향 줌
- keyword = 외부 전역 변수 , 참조 , 갱신
- External 외부 : 한 모듈에서 선언한 변수를 타 모듈이 참조
- keyword = 외부 선언 변수
- Control 제어 : 내부 논리 조직 제어를 목적하여 하위 > 상위로 제어신호 이동 = 권리 전도
- Stamp 스탬프 : 모듈간 자료 구조 전달 시 변화 발생하면 모든 모듈에 영향 줌
- Data 자료 : 타 모듈이 호출시 매개변수/인수로 데이터 전달 후 결과로 처리값 리턴
프로세스
- 프로세스 상태 전이 = 제출 ~ 접수 ~ 준비 ~ 실행 ~ 대기 ~ 보류 ~ 교착 ~ 완료
- Dispatch( 준비상태에서 대기 프로세스 중 할당받아 실행으로 전이)
- Wake up (입출력 완료 후 프로세스가 대기 상태에서 준비상태로 전이)
- Spooling (상대적 느린 입출력 속도를 위해 디스크에 저장)
- PCB 프로세스 제어블록 : 운영체제가 프로세스에 대한 중요 정보를 저장해 두는 곳
- 인스턴트 : 메모리에 올라온 실행되는 프로그램 독립 개체 = 코드를 짜서 프로그램을 만들고 실행시킨 것
[ 경량 프로세스 : 스레드 ]
- 시스템 여러 자원을 CPU에서 할당받아 실행하는 프로그램 단위(TASK보다 작음)
- 하드웨어와 운영체제 성능 및 처리율 향상 , 응용프로그램 응답 시간 단축 , 실제 환경 공유를 통한 장소낭비 감소
- 커널 스레드 : 운영체제로 제작 후 운용 , 쉬운 구현 , 느린 속도
- 사용자 스레드 : 사용자 라이브러리로 제작 후 운용, 어려운 구현 , 빠른 속도
OSI 7계층
- 전체 암기 : 픽P 데D 네N 트T 세S 프P 에A / 물데네 전세표응
[ 하위 계층 ]
1. Physical 물리 : 두 장치간 실접속/절단 등 물리적 전송 매개체, 절차적 규정
2. Data Link 데이터링크 : 개방 시스템 간 오류제어/순서제어/흐름제어로 인접노드로 신뢰 링크 전송, 노드간 책임가짐, 에러복구 (장비 : 브릿지,스위치)
3. Network 네트워크 : 개방 시스템 간 연결관리 = 폭주제어 , 데이터 교환 , 경로설정 , 패킷정보 전송 (표준_IP)
[ 상위 계층 ]
4. Transport 전송 : 데이터 종단에 신뢰성 전송 제공 , 주소설정과 오류 제어 , 재조립, 연결해제 가능 (표준_TCP/UDP)
TCP | -. 양방향 연결 서비스 -. 1대1 = 큰 신뢰성 = 수신여부 확인 -. 스트림(순차) 전송 -. 최소헤더 20BYTE |
*흐름제어 기법 Stop and Wait Slow Start Sliding Window (1회 여러 패킷 전송) Congestion Avoidence (지연관리/트래픽 붕괴 방지) L4스위치 |
UDP | -. 비연결형 서비스 -. 1대N = 속도 빠름 -. 실시간 전송 -. 헤더크기 작음 = 8BYTE = 오버헤드 적음 |
DNS는 UDP 기반 서비스 |
- TCP/IP의 프로토콜 계층(4단계) / OSI의 계층(7단계) 별도 구분
5. Session 세션 : 대화 세션 제어 , 데이터 교환 관리 , 논리적 연결 확립, 송수신간 관련성 유지 , Check Point 사용(오류지에서 회복 가능)
6. Presentation 표현 : 통신 용이한 형태로 변환 , 코드 변환 , 데이터 암호화/압축
7. Application 응용 : OSI에 접근하는 서비스 제공
* 물리계층 단위는 frame, 전송계층 단위는 segement, 세션&표현&응용 계층 단위는 data
프로토콜
- 컴퓨터 내부에서 교환방식을 정의하는 규칙
[ 라우팅 프로토콜 ]
- 라우팅 테이블 생성/유지/업데이트/전달
- 내부 : RIP(최대흡계수 15 =소규모 , 거리백터 라우팅 , 수평분리(중복전달방어) , 포이즌리버스(에러시 경로 사용막음) , TIMEOUT 전달 / IGRP / OSPF(멀티태스킹 지원) / EIGRP
- 외부 : BGP & EGP
[ TCP/IP 프로토콜 계층 ] ★
- 인터넷 연결된 다양 기종이 데이터를 주고받는 표준 규칙
1. 응용계층(FTP,SMTP, DNS 등)
2. 전송계층(TCP,UDP)
3. 인터넷계층
- IP : 네트워크 장치간 인식/통신 고유주소 (<=> MAC 주소 : 물리적 주소)
- IPv4 = 32bit, 패킷크기 64kbyte 고정 (유니캐스트, 멀티캐스트, 브로드캐스트)
- IPv6 = 16진수, 128bit, 확장 헤더로 네트워크 기능 확장 , 보완 , 임의 크키 패킷 (유니캐스트|멀티캐스트|애니캐스트)
- ARP(IP=>MAC주소) , RAAP(MAC=>IP주소)
- IGMP(멀티캐스트 지원)
- ICMP(제어 메세지의 오류처리 및 경로변경 관리)
4. 네트워크액세스 계층(이더넷)
프로세스 교착
- 필요한 자원이 점유되어 무한정 대기하는 상태
[ 프로세스 교착 원인 ]
- Mutual Exclusion 상호배제 : 1번당 1개 프로세스만 공유자원으로 사용
- Hold and Wait 점유와 대기 : 자원 할당 후 타 프로세스 할당 자원은 대기
- Non-preemption 비선점 : 할당자원은 강탈 불가
- Circular Wait 환형 대기 : 이미 자원을 가진 프로세스가 다른 자원을 탐냄
[ 프로세스 교착 해결 ] A P D R
- Avoidence 회피 : 교착 가능성을 피함 = 은행가 알고리즘
- Prevention 예방 : 교착 원인 중 하나 제거
- Detection 탐지 : 자원 할당 그래프 활용
- Recovert 복구(회복) : 교착 프로세스가 점유한 자원 선점 / 프로세스 종료
[ 프로세스 스켸줄링 ]
- 프로세스 생성 후 실행시 필요로 하는 시스템의 여러 자원을 해당 프로세스에 할당
- 선점 : 할당받은 프로세스 강탈
- 비선점 : 할당 프로세스 강탈 불가
- SJF(Shortest ~) = 짧은 프로세스 우선
- HRN(Highest~ ) = 대기기간 긴 프로세스 우선 = 작업시간 불평등 해소 = (대기시간+서비스시간) / 서비스시간
페이지
- 가상 기억장치를 동일한 크기로 블록화
[ 페이지 교체 알고리즘 ]
- 물리적 메모리 한계로 추상적 메모리 내용이 올라오지 않으면 다시 불러와 올림 (예_글씨만 있는 글에 그림을 올릴 때)
- 선입선출 (FIFO) : 큐 사용법
- LRU(Least Recently Used) : 가장 오래 사용하지 않은 것 교체
- LFU(Least Frequently Used) : 가장 적게 사용한 것 교체
- 문제푸는 방법
- 할당된 페이지 프레임의 수는 4개이고, 참조 페이지 번호 (순서대로 참조할 페이지 번호를 알려줍니다) 가 다음과 같을 때, 페이지 부재의 횟수는? <참조 페이지 번호> 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4
1. 0은 없던 번호이므로 0을 넣으면서 부재 1페이지 발생 = 총 1페이지 부재 / 0
2. 1도 없던 번호이므로 1을 넣으면서 부재 1페이지 추가 발생 = 총 2페이지 부재 / 0 1
3. 2도 없던 번호이므로 2를 넣으면서 부재 페이지 1페이지 추가 발생 = 총 3페이지 부재 / 0 1 2
4. 3도 없던 번호이므로 3을 넣으면서 부재 페이지 1페이지 추가 발생 = 총 4페이지 부재 / 0 1 2 3
5. 0은 있던 번호이므로 부재 없음
6. 1은 있던 번호이므로 부재 없음
7. 4는 없던 번호이므로 부재 1페이지 추가 발생 = 총 5페이지 부재 /프레임수 4개라 가장 먼저 들어온 0이 빠짐 = 4 1 2 3
8. 0은 현재 프레임에 없는 번호이므로 1페이지 추가 발생 = 총 6페이지 부재 / 프레임수 4개라 가장 먼저 들어온 1이 빠짐 = 4 0 2 3
9. 1은 현재 프레임에 없는 번호이므로 1페이지 추가 발생 = 총 7페이지 부재 = 프레임수 4개라 가장 먼저 들어온 2가 빠짐 = 4 0 1 3
10. 2는 현재 프레임에 없는 번호이므로 1페이지 추가 발생 = 총 8페이지 부재 = 프레임수 4개라 가장 먼저들어온 3이 빠짐 = 4 0 1 2
11. 3은 현재 프레임에 없는 번호이므로 1페이지 추가 발생 = 총 9페이지 부재 = 프레임 수 4개라 가장 먼저 들어온 4가 빠짐 = 3 0 1 2
12. 4는 현재 프레임에 없는 번호이므로 1페이지 추가 발생 = 총 10페이지 부재 = 프레임 수 4개라 가장 먼저 들어온 0이 빠짐 = 3 4 1 2
출처 : 정보처리기사 필기 4과목 - 프로그래밍 언어 활용 (빈출 요점 정리) :: 초코쨔응의 데스크탑 (tistory.com)
다음의 페이지 참조 열 (Page reference string) 에 대해 페이지 교체 기법으로 선입선출 알고리즘을 사용할 경우 페이지 부재 (Page Fault) 횟수는? (단, 할당된 페이지 프레임 수는 3이고, 처음에는 모든 프레임이 비어있다.)
<페이지 참조 열>
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0
1. 7은 없는 번호이므로 1페이지 추가 발생 = 총 1페이지 부재 / 7
2. 0은 없는 번호이므로 1페이지 추가 발생 = 총 2페이지 부재 / 7 0
3. 1은 없는 번호이므로 1페이지 추가 발생 = 총 3페이지 부재 / 7 0 1
4. 2는 없는 번호이므로 1페이지 추가 발생 = 총 4페이지 부재 / 프레임 3개이므로 가장 먼저들어온 7이 빠짐 = 2 0 1
5. 0은 있는 번호
6. 3은 없는 번호이므로 1페이지 추가 발생 = 총 5페이지 부재 / 프레임 3개이므로 가장 먼저 들어온 0이 빠짐 = 2 3 1
7. 0은 없는 번호이므로 1페이지 추가 발생 = 총 6페이지 부재 / 프레임 3개이므로 가장 먼저 들어온 1이 빠짐 = 2 3 0
8. 4는 없는 번호이므로 1페이지 추가 발생 = 총 7페이지 부재 / 프레임 3개이므로 가장 먼저 들어온 2가 빠짐 = 4 3 0
9. 2는 없는 번호이므로 1페이지 추가 발생 = 총 8페이지 부재 / 프레임 3개이므로 가장 먼저 들어온 3이 빠짐 = 4 2 0
10. 3은 없는 번호이므로 1페이지 추가 발생 = 총 9페이지 부재 / 프레임이 3개이므로 가장 먼저 들어온 0이 빠짐 = 4 2 3
11. 0은 없는 번호이므로 1페이지 추가 발생 = 총 10페이지 부재 / 프레임이 3개이므로 가장 먼저 들어온 4가 빠짐 = 0 2 3
12. 3은 있는 번호
13. 2는 있는 번호
14. 1은 없는 번호이므로 1페이지 추가 발생 = 총 11페이지 부재 / 프레임이 3개이므로 가장 먼저 들어온 2가 빠짐 = 0 1 3
15. 2는 없는 번호이므로 1페이지 추가 발생 = 총 12페이지 부재 / 프레임이 3개 이므로 가장 먼저 들어온 3이 빠짐 = 0 1 2
16. 0은 있는 번호
17. 1은 있는 번호
18. 7은 없는 번호 이므로 1페이지 추가 발생 = 총 13페이지 부재 / 프레임이 3개이므로 가장 먼저 들어온 0이 빠짐 = 7 1 2
19. 0은 없는 번호이므로 1페이지 추가 발생 = 총 14페이지 부재 / 프레임이 3개이므로 가장 먼저 들어온 1이 빠짐 = 7 0 2
결론 = 페이지 부재 14개수
기억장치 배치
- 새로 반입되는 곳이나 프로그램 데이터를 주기억 장치 어느부분에 배치할 것인지 결정
- 최초적합 : 빈곳 중 첫번째 분할 영역
- 최적적합 : 빈곳 중 맞는 영역
- 최악적합 : 빈 곳 중 공간이 제일 큰 영역
인터페이스
[ 인터페이스 구현 ]
- XML : 특수 목적을 갖는 다목적 마크업 언어
- JSON : 키-값, XML대체제, 개방형(=텍스트), 용량적은 데이터 교환을 위한 형식
- AJAX : 자바스크립트를 사용한 비동기 통신기술, XML로 응답
- REST : HTTP메서드로 주고받는 웹 아키텍쳐
[ 인터페이스 구현 검증도구 ]
- xUnit : 다양 언어 지원의 단위 테스트 프레임워크
- Selenium : 다양 개발어 지원의 웹 어플리케이션 테스트 프레임워크
- STAF : 다양환경 지원 = 큰 확장성 , 재사용성, 각 분산환경에 데몬사용 ~ 통합 ~ 자동화
- FitNess : 웹 기반 테스트케이스 설계, 협업
- NTAF : STAF와 FitNess 장점 MIX = 재사용성 + 협업 + 확장성 , 자동화
- Waitr : RUBY를 사용하는 어플리케이션 테스트 프레임워크
[ UI 유저인터페이스 ]
- UI는 사용자가 접근하는 화면
- 직관성 : 쉬운 이해
- 유효성 : 목적 정확한 달성
- 학습성 : 쉬운 교육
- 유연성 : 요구 최대 수용 + 오류 최소화
배치 프로그램
- 필수요소 : 대용량 데이터 처리능력, 성능, 자동화, 견고성(비유효데이터도 처리해서 중단을 방어함) , 안정성
'관련 도서 및 지식 > 자격증' 카테고리의 다른 글
[ 정보처리기사 실기 ] C언어 - 기본적 문법 구조 (2) | 2023.01.21 |
---|---|
[ 정보처리기사 필기 ] 5파트 요약 : 프로젝트 비용 산정 , 프로그램 기술 , 보안 , 정보 원칙 , 공격 , 네트워크 관리 신기술 , 암호화 (0) | 2023.01.16 |
[ 정보처리기사 필기 ] 4파트 요약 (1) : 운영체제(OS) , 언어 , 배열 선언 (1) | 2023.01.16 |
[ 정보처리기사 필기 ] 3파트 요약 : SQL , KEY, 트랜잭션 , 분산DB , 병행 제어 , 관계 데이터 모델 , 관계 대수 연산 , 모듈 연계 솔루션 , 테스트 (0) | 2023.01.15 |
[ 정보처리기사 필기 ] 1~2파트 요약 (2) : 알고리즘, 객체 지향 구성, UML, 코드, 품질 분석, 설계 (0) | 2023.01.14 |