정보처리산업기사 1과목 요약: 정보시스템 기반 기술
운영체제의 개요
운영체제는 컴퓨터 하드웨어를 관리하고 응용 소프트웨어를 실행하는 시스템 소프트웨어로서, 사용자와 하드웨어 간의 중재자 역할을 합니다. 운영체제의 주요 목적은 다음과 같습니다:
- 처리 능력(Throughput) 향상: 단위 시간당 처리할 수 있는 작업의 양을 늘립니다.
- 반환 시간(Turn Around Time) 단축: 작업을 완료하는 데 걸리는 시간을 줄입니다.
- 사용 가능도(Availability) 향상: 시스템을 언제나 사용할 수 있도록 합니다.
- 신뢰도(Reliability) 향상: 시스템의 안정성과 오류 발생을 최소화합니다.
운영체제의 기능
운영체제는 다양한 기능을 수행하여 컴퓨터 시스템을 효율적으로 운영합니다:
- 자원 관리: 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원을 관리합니다.
- 자원 스케줄링: 자원의 효율적인 사용을 위해 스케줄링 기능을 제공합니다.
- 인터페이스 제공: 사용자와 시스템 간의 인터페이스를 제공합니다.
- 데이터 및 자원 공유: 데이터를 관리하고 자원의 공유 기능을 제공합니다.
프로세스 상태 전이
프로세스는 실행 중인 프로그램의 단위로, 다음과 같은 상태 전이를 겪습니다:
- 제출(Submit): 사용자가 작업을 시스템에 제출한 상태.
- 접수(Hold): 제출된 작업이 디스크에 저장된 상태.
- 준비(Ready): 프로세서를 할당받기 위해 기다리고 있는 상태.
- 실행(Run): 프로세서를 할당받아 실행되는 상태.
- 대기(Wait), 보류, 블록(Block): 입출력 처리가 완료될 때까지 대기하는 상태.
- 종료(Terminated, Exit): 실행이 끝나고 프로세스 할당이 해제된 상태.
운영체제 운용 기법의 발달 과정
운영체제의 발전은 크게 네 세대로 나눌 수 있습니다:
- 1세대: 일괄 처리 시스템으로, 한 번에 한 작업만을 처리하는 방식.
- 2세대: 다중 프로그래밍, 다중 처리 시스템, 시분할 시스템, 실시간 처리 시스템 등 다양한 기법이 도입됨.
- 3세대: 다중 모드 시스템으로, 여러 운영체제 기법이 동시에 사용되는 방식.
- 4세대: 분산 처리 시스템으로, 여러 대의 컴퓨터가 협력하여 작업을 수행하는 방식.
스케줄링
스케줄링은 시스템 자원을 효율적으로 배분하기 위해 다양한 기법을 사용합니다:
- FCFS (First-Come, First-Served): 준비상태 큐에 도착한 순서에 따라 CPU를 할당하는 기법.
- SJF (Shortest Job First): 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법.
- RR (Round Robin): 시분할 시스템을 위해 고안된 방식으로, FCFS 알고리즘을 선점 형태로 변형한 기법입니다.
교착상태 발생의 필요 충분 조건
교착상태는 시스템 내에서 두 개 이상의 프로세스가 서로 상대방의 자원을 기다리며 무한히 대기하는 상태입니다. 교착상태 발생의 필요 충분 조건은 다음과 같습니다:
- 상호 배제(Mutual Exclusion): 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함.
- 점유와 대기(Hold and Wait): 하나의 자원을 점유하고 있으면서 다른 자원을 추가로 점유하기 위해 대기하는 상태.
- 비선점(Non-preemption): 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함.
- 환형 대기(Circular Wait): 공유 자원과 프로세스들이 원형으로 구성되어 있어야 함.
기억장치의 배치 전략
기억장치 배치 전략은 프로그램이 주기억장치에 어떻게 배치될지를 결정합니다:
- 최초 적합(First Fit): 첫 번째로 발견된 분할 영역에 배치.
- 최적 적합(Best Fit): 단편화를 가장 작게 남기는 분할 영역에 배치.
- 최악 적합(Worst Fit): 단편화를 가장 많이 남기는 분할 영역에 배치.
가상기억장치 - 페이징 기법
페이징 기법은 프로그램과 주기억장치의 영역을 동일한 크기로 나누어 관리합니다:
- 페이지(Page): 프로그램을 일정한 크기로 나눈 단위.
- 페이지 단위로 프로그램을 적재시켜 실행. 내부 단편화가 발생할 수 있음.
가상기억장치 - 세그먼테이션 기법
- 세그먼테이션 기법: 프로그램을 다양한 크기의 논리적인 단위로 나누어 적재시켜 실행하는 방식입니다. 프로그램을 논리적인 크기로 나눈 단위를 세그먼트(segment)라고 하며, 외부 단편화가 발생할 수 있습니다.
직접 파일 (Direct File)
- 직접 파일: 레코드를 임의의 물리적 저장공간에 기록하는 방식으로, 해싱 함수를 이용하여 물리적 상대주소를 계산합니다.
2단계 디렉터리
- 2단계 디렉터리: 중앙에 마스터 파일 디렉터리가 있고, 그 아래에 사용자별로 서로 다른 파일 디렉터리가 있는 2계층 구조입니다. 마스터 파일 디렉터리는 사용자 파일 디렉터리를 관리하고, 사용자 파일 디렉터리는 사용자별 파일을 관리합니다.
권한(자격) 리스트
- 권한 리스트: 영역을 중심으로 권한 리스트를 구성하며, 각 영역에 대한 권한 리스트는 객체와 그 객체에 허용된 조작 리스트로 구성됩니다.
UNIX의 특징
- UNIX: 대부분 C 언어로 작성되어 있어 이식성이 높고, 장치와 프로세스 간의 호환성이 높습니다. 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원하며, 트리 구조의 파일 시스템을 갖습니다.
주요 페이지 교체 알고리즘
- FIFO (First In First Out): 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법.
- LRU (Least Recently Used): 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법.
- NUR (Not Used Recently): 최근에 사용하지 않은 페이지를 교체하는 기법으로, 참조 비트와 변형 비트가 사용됩니다.
주요 디스크 스케줄링
- FCFS (First-Come, First-Served): 가장 먼저 들어온 트랙에 대한 요청을 먼저 서비스하는 기법입니다.
- SSTF (Shortest Seek Time First): 탐색 거리가 가장 짧은 트랙에 대한 요청을 먼저 서비스하는 기법입니다.
UNIX - 커널(Kernel)의 기능
- 커널의 기능: 프로세스(CPU 스케줄링) 관리, 기억장치 관리, 파일 시스템 관리, 입출력 관리 등.
UNIX - 쉘(Shell)
- 쉘: 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기입니다. 시스템과 사용자 간의 인터페이스를 담당합니다.
UNIX의 주요 명령어
- cat: 파일 내용을 화면에 표시.
- chmod: 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정.
- chown: 소유자를 변경.
- exec: 새로운 프로세스를 수행.
- fork: 새로운 프로세스를 생성.
- ls: 현재 디렉터리 내의 파일 목록을 확인.
비동기식 전송
- 비동기식 전송: 시작 비트와 정지 비트를 붙여서 전송하는 방식으로, 문자와 문자 사이의 휴지 시간이 불규칙합니다.
해밍 코드
- 해밍 코드: 수신 측에서 오류가 발생한 비트를 검출한 후 직접 수정하는 방식으로, 1비트의 오류만 수정이 가능합니다.
통신 프로토콜
- 통신 프로토콜: 서로 다른 기기들 간의 데이터 교환을 정확하고 원활하게 수행할 수 있도록 표준화한 통신 규약입니다.
OSI 7 계층
- 계층 구조: 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층.
- 주요 계층:
- 데이터 링크 계층: 신뢰성 있고 효율적인 정보 전송을 위해 시스템 간 연결 설정과 유지 및 종료를 담당.
- 네트워크 계층: 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능을 담당.
- 전송 계층: 종단 시스템 간에 투명한 데이터 전송을 가능하게 함.
TCP/IP 계층별 주요 프로토콜
- 응용 계층: TELNET, FTP, SMTP, SNMP, E-Mail 등.
- 전송 계층: TCP, UDP 등.
- 인터넷 계층: IP, ICMP, IGMP, ARP, RARP 등.
- 네트워크 액세스 계층: Ethernet, IEEE 802, HDLC, X.25, RS-232C 등.
IPv6 주소
- 구성: 16비트씩 8부분, 총 128비트로 구성.
- 표현: 각 부분을 16진수로 표현하고, 콜론(:)으로 구분.
- 기능: 인증성, 기밀성, 데이터 무결성 지원.
- 특징: 주소의 확장성, 융통성, 연동성이 뛰어남.
소프트웨어 공학의 기본 원칙
- 지속적 적용: 현대적인 프로그래밍 기술의 지속적 적용.
- 품질 검증: 소프트웨어 품질의 지속적 검증.
- 명확한 기록: 개발 관련 사항 및 결과에 대한 명확한 기록 유지.
폭포수 모형
- 단계적 접근: 각 단계를 확실히 매듭짓고 다음 단계로 진행.
- 요구사항 반영: 요구사항 반영이 어려움.
- 단계 반복: 계획 수립, 위험 분석, 개발 및 검증, 고객 평가 과정 반복.
경로 제어(라우팅) 프로토콜
- 종류: RIP, OSPF, EGP, BGP, EIGRP 등.
- 방식: 거리 벡터 방식 (RIP, EIGRP, BGP 등), 링크 상태 방식 (OSPF).
패킷 교환 방식
- 원리: 메시지를 일정한 길이의 패킷으로 전송.
- 특징: 데이터 전송에 적합, 장애 발생 시 우회 가능, 대량 데이터 전송 시 지연 증가.
고속 이더넷
- 기술: 100 BASE T, CSMA/CD 사용.
- 속도: UTP 케이블로 100Mbps 속도 전송.
애자일 개발 4가지 핵심 가치
- 개인과 상호작용 중시: 개인과의 소통 및 협력을 중요시.
- 실행되는 소프트웨어 중시: 문서보다 작동하는 소프트웨어에 중점.
- 고객과 협업 중시: 계약 협상보다는 고객과의 협력을 중시.
- 변화에 반응 중시: 계획을 따르기보다는 변화에 유연하게 대응.
XP의 핵심 가치
- 의사소통: 명확하고 개방적인 의사소통.
- 단순성: 단순한 설계를 지향.
- 용기: 변화에 대한 두려움 없이 대응.
- 존중: 팀원 간의 존중과 협력.
- 피드백: 지속적인 피드백을 통한 개선.
UML (Unified Modeling Language)
- 정의: 표준화된 객체지향 모델링 언어.
- 구성: 사물(Things), 관계(Relationships), 다이어그램(Diagram).
UML의 주요 관계
- 일반화 관계: 일반적, 구체적 관계 표현.
- 의존 관계: 필요에 의한 짧은 시간 연관.
- 실체화 관계: 기능으로 그룹화.
소프트웨어 아키텍처 뷰의 종류
- 유스케이스 뷰: 사용자 요구사항을 반영.
- 논리적 뷰: 시스템의 기능적 요구사항을 반영.
- 구현 뷰: 시스템의 소프트웨어 모듈 구성.
- 프로세스 뷰: 시스템의 동적 행위 반영.
- 배포 뷰: 시스템의 물리적 노드 배치.
자료 흐름도의 구성 요소
- 기호 표기법: 프로세스, 자료 흐름, 자료 저장소, 단말.
자료 사전의 표기 기호
- 정의: 자료의 의미와 형식을 정의.
- 연결: 자료 간의 관계를 정의.
- 생략: 자료 생략 시 사용하는 기호.
- 선택: 여러 선택사항을 표시.
- 반복: 반복되는 자료를 표시.
- 설명: 자료의 추가 설명 제공.
파이프 - 필터 패턴
- 정의: 필터 컴포넌트로 캡슐화, 파이프 통해 데이터 전송.
- 특징: 서브 시스템이 입력 데이터 받아 처리 후 전송 반복.
캡슐화
- 정의: 데이터와 함수를 하나로 묶음.
- 특징: 외부 모듈 변경 영향 최소화, 재사용 용이.
상속
- 정의: 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받음.
럼바우의 분석 기법
- 객체 모델링: 속성, 연산 식별, 객체 관계 규정.
- 동적 모델링: 상태 다이어그램 이용, 동적 행위 표현.
- 기능 모델링: 자료 흐름도로 프로세스 간 처리 과정 표현.
생성 패턴
- 빌더: 인스턴스를 조합해 객체 생성.
- 프로토타입: 원본 객체 복제해 객체 생성, 비용 큰 경우 사용.
- 싱글톤: 한 객체만 생성, 어디서든 참조 가능, 메모리 낭비 최소화.
구조 패턴 - 데코레이터(Decorator)
- 정의: 객체 간의 결합을 통해 능동적으로 기능들을 확장할 수 있는 패턴.
- 특징: 객체에 부가적인 기능을 추가하기 위해 다른 객체들을 덧붙이는 방식으로 구현.
화이트박스 테스트
- 정의: 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법.
- 특징: 원시 코드의 모든 문장을 한 번 이상 실행함으로써 수행.
화이트박스 테스트 - 루프 검사
- 정의: 프로그램의 반복(Loop) 구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법.
- 반복 구조: 단순 루프, 중첩 루프, 연결 루프, 비구조적 루프.
블랙박스 테스트 종류
- 동치 분할 검사
- 경계값 분석
- 원인-효과 그래프 검사
- 오류 예측 검사
- 비교 검사
소프트웨어 테스트 순서
- 단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트
단위 테스트
- 정의: 모듈이나 컴포넌트에 초점을 맞춰 테스트하는 것.
- 특징: 사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 수행.
통합 테스트
- 정의: 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생하는 오류 및 결함을 찾는 테스트 기법.
- 종류: 하향식 통합 테스트, 상향식 통합 테스트, 혼합식 통합 테스트.
사용자 인터페이스의 특징
- 편리성: 사용자의 편리성과 가독성을 높임.
- 작업 시간 단축: 작업 시간을 단축시킴.
- 이해도 향상: 업무에 대한 이해도를 높임.
- 사용자 중심 설계: 사용자 중심으로 설계됨.
사용자 인터페이스의 구분
- CLI(Command Line Interface): 명령과 출력이 텍스트 형태로 이뤄지는 인터페이스.
- GUI(Graphical User Interface): 아이콘이나 메뉴를 마우스로 선택하여 작업을 수행하는 그래픽 환경의 인터페이스.
- NUI(Natural User Interface): 사용자의 말이나 행동으로 기기를 조작하는 인터페이스.
형상 관리
- 정의: 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동.
- 관리 항목: 소스 코드, 프로젝트 계획, 분석서, 설계서, 지침서, 프로그램, 테스트 케이스 등.
빌드 자동화 도구
- 정의: 빌드를 포함하여 테스트 및 배포를 자동화하는 도구.
- 종류: Ant, Make, Maven, Gradle, Jenkins 등.
'자격증 > 정보처리산업기사' 카테고리의 다른 글
[자격증] 정보처리산업기사 실기 2과목 (0) | 2024.08.11 |
---|---|
[자격증] 정보처리산업기사 실기 1과목 (0) | 2024.08.10 |
2024 정보처리산업기사 필기(3) (0) | 2024.08.09 |
2024 정보처리산업기사 필기(2) (0) | 2024.08.09 |