Ch11_01 운영체제의 특징
Study/정보처리기사 2020. 10. 22. 00:351. 운영체제
1. 운영체제의 개념
A. 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공하는 SW
2. 운영체제의 종류
A. 윈도우 운영체제
i. 그래픽 사용자 인터페이스 (GUI)
ii. 선점형 멀티태스킹 방식
iii. 자동감지 기능
iv. OLE 사용 : 개체를 작성중인 문서에 자유롭게 연결, 삽입 편집
B. 유닉스 운영체제
i. 대화식 운영체제 기능 제공
ii. 다중 작업 기능 제공
iii. 다중 사용자 기능 제공
iv. 이식성 제공
v. 계층적 트리 구조 파일 시스템 제공
1. 리눅스 운영체제
2. 맥 운영체제
3. 안드로이드 운영체제
A. 리눅스 기반
B. 자바와 코틀린 언어
C. 런타임 라이브러리
D. 안드로이드 소프트웨어 개발 키트
2. 운영체제 기본 명령어 활용
1. 운영체제 제어
A. CLI : 사용자가 직접 명령어 입력, 컴퓨터에 명령 내림
B. GUI : 마우스로 화면 클릭, 그래픽 위주로 컴퓨터 제어
2. 윈도우 운영체제 기본 명령어
A. ATTRIB : 파일 속성 표시, 바꿈
B. CALL : 한 일괄 프로그램에서 다른 일괄 프로그램 호출
C. CD : 현재 디렉토리 이름 보여주거나 바꿈
D. CHKDSK : 디스크 검사, 상태 보고서 표시
E. CLS : 화면 지움
F. CMD : 명령 프롬프트
G. COMP : 두개 이상 파일 비교
H. DISKPART : 디스크 파티션 속성 표시, 구성
I. ECHO : 메시지 표시, 에코 사용 또는 사용하지 않음
J. ERASE : 하나 이상 파일 지움
K. EXIT : CMD.EXE.프로그램 마침
3. 리눅스 / 유닉스 계열 기본 명령어
3. 운영체제 핵심 기능 파악
1. 운영체제 핵심 기능
A. 메모리 관리 : 프로그램의 실행이 종료될 때까지 메모리를 가용한 상태로 유지 및 관리하는 기능
i. 반입 기법 : 주기억장치에 적재할 다음 프로세스의 반입 시기를 결정
ii. 배치 기법 : 디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인 것 결정하는 기법
iii. 할당 기법 : 실행해야 할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인 것 결정하는 기법
iv. 교체 기법 : 재배치 기법으로 주기억장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지를 결정하는 기법
B. 프로세스 관리 : CPU와 데이터를 송수신하는 상황에서 현재 메모리 사용 부분, 메모리 입출력 순서, 메모리 공간 확보 등 프로세스에 대한 종합적인 관리 기법
i. 프로세스 상태
1. 생성 상태 : 사용자에 의해 프로세스 생성
2. 준비 상태 : CPU를 할당받을 수 있는 상태
3. 실행 상태 : 프로세스가 CPU를 할당받아 동작 중
4. 대기 상태 : 프로세스 실행 중 입출력 처리 등으로 인해 CPU를 양도하고 입출력 처리가 완료까지 대기리스트에서 기다리는 상태
5. 완료 상태 : 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태
ii. 프로세스 상태 전이
1. 디스패치 : 준비 사상태에 있는 여러 프로세스 중 실행될 프로세스를 선정하여 CPU를 할당 (준비 -> 실행)
2. 타이머 런 아웃 : CPU를 할당받은 프로세스는 지정된 시간이 초과되면 스케줄러에 의해 PCB 저장, CPU 반납 후 다시 준비 상태로 전이
3. 블록 : 실행 상태에 있는 프로세스가 지정된 할당시간을 초과하기 전에 입출력이나 기타 사건이 발생하면 CPU를 스스로 반납하고 입출력이 완료될 때까지 대기상태로 전이
4. 웨이크업 : 어느 순간 입출력이 종료되면 대기 상태의 프로세스에게 입출력 종료사실을 알려주고 준비상태로 전이
5. Swap-in : 프로세스에게 다시 기억장치를 할당될 경우
6. Swap-out : 프로세스가 기억장치를 잃은 경우
C. 프로세스 스케줄링
i. 프로세스 스케줄링
1. CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업
ii. 주요 용어
1. 서비스 시간 : 프로세스가 결과를 산출하기까지 소요되는 시간
2. 응답시간 : 프로세스 들이 입력되어 수행하고 결과를 산출하기까지 소요되는 시간 (응답시간 = 대기시간 + 수행시간)
3. 평균 응답시간 : 대기 큐의 프로세스가 결과를 산출하기 소요되는 시간 평균
4. 대기시간 : 프로세스가 프로세서에 할당 대기까지 큐에 대기하는 시간
5. 평균 대기시간 : 프로세스가 대기 큐에 대기하는 평균 시간
6. 종료 시간 : 요구되는 프로세싱타임을 모두 수행하고 종료된 시간
7. 시간 할당량 : 한 프로세스가 프로세서를 독점하는 것을 방지하기 위해 서비스되는 시간 할당량
8. 응답률 : (대기시간+서비스시간) / 서비스시간
iii. 프로세스 스케줄링 유형
1. 선점형 스케줄링 : 하나의 프로세스가 CPU를 차지하고 있을 때 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식
A. 빠른 응답, 높은 우선순위 프로세스들이 들어오는 경우 오버헤드 초래
B. 라운드 로빈, SRT, 다단계 큐, 다단계 피드백 큐
2. 비선점형 스케줄링 : 한 프로세스가 CPU를 할당받으면 작업 종료 후 반환시까지 다른 프로세스는 CPU점유 불가
A. 응답시간 예상 용이, 공정, 짧은 작업을 수행하는 프로세스가 긴 작업 종료까지 대기해야 함
B. 우선순위, 기한부, FCFS, HRN, SJF
iv. 프로세스 스케줄링 알고리즘
1. 선점형 스케줄링 알고리즘
A. 라운드 로빈 : 프로세스는 같은 CPU 시간을 할당, 프로세스가 할당시간 내 처리완료를 못하면 준비된 큐 리스트의 가장 뒤로 보내지고 CPU는 대기 중인 다음 프로세스로 넘어감 (시분할 시스템)
B. SRT : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비큐에 생기면 언제라도 프로세스 선점
C. 다단계 큐 : 작업들을 여러 종류 그룹을 분할, 여러 개의 큐를 이용해 상위작업에 의한 하위단계의 작업이 선점당함
D. 다단계 피드백 큐 : 입출력 위주와 CPU 위주인 프로세스의 특성에 따라 큐마다 서로 다른 CPU 시간 할당량 부여
2. 비선점형 스케줄링 알고리즘
A. 우선순위 : 프로세스 별 우선순위 부여, 우선순위에 따라 CPU 할당
B. 기한부 : 작업들이 명시된 시간이나 기한 내에 완료되도록 계획
C. FCFS : 프로세스가 대기 큐에 도착한 순서에 따라 CPU 할당
D. SJF : 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스시간을 갖는 프로세스가 종료시까지 자원 점유
E. HRN : 대기중인 프로세스 중 현재 응답률이 갖아 높은 것 선택
v. 프로세스 스케줄링 알고리즘 계산법
2. 가상화, 클라우드
A. 가상화 : 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술
i. 가상화의 종류
1. 플랫폼 가상화 : 하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 마치 독립된 환경을 만들어 낸 것처럼 보여주는 기법
2. 리소스 가상화 : 게스트 소프트웨어 위에서 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법
ii. 가상화 기술 요소
1. 컴퓨팅 가상화 : 물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술
2. 스토리지 가상화 : 스토리지와 서버 사이에 소프트웨어/하드웨어 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술
3. I/O 가상화 : 디바이스 사이에 위치하는 미들웨어 계층, 서버의 I/O 자원 물리적으로 분리, 케이블과 스위치 구성을 단순화하여 효율적인 연결을 지원
4. 컨테이너 : 컨테이너화된 앱이 단일 운영체제상에서 실행되도록 해주는 기술
5. 분산처리 기술 : 여러대의 컴퓨터 계산 및 저장능력을 이용하여 커다란 계산문제나 대용량의 데이터를 처리하고 저장하는 기술
6. 네트워크 가상화 기술 : 물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단으로 중계장치의 가상화를 통한 가상 네트워크를 지원하는 기술
B. 클라우드 컴퓨팅 : 인터넷을 통해 가상화된 컴퓨터 시스템 리소스를 제공하고, 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술
i. 분류
1. 사설 클라우드 : 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원을 사용하여 내부에 구축되어 운영되는 클라우드
2. 공용 클라우드 : 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드
3. 하이브리드 클라우드 : 기업 또는 조직 내부에서 사설과 공용 클라우드를 모두 사용하는 클라우드
ii. 클라우드 컴퓨팅 유형
1. 인프라형 서비스 (IaaS) : 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
2. 플랫폼형 서비스 (Paas) : 인프라를 생성, 관리하는 복잡함 없이 앱을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
3. 소프트웨어형 서비스 (SaaS) : 소프트웨어 및 관련 데이터는 중앙에 호스팅, 사용자는 웹브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스형태로 이용하는 서비스
'Study > 정보처리기사' 카테고리의 다른 글
Ch11_03 네트워크 기초 활용하기 (0) | 2020.10.22 |
---|---|
Ch11_02 데이터베이스 기초 활용하기 (0) | 2020.10.22 |
Ch10_02 언어 특성 활용하기 (0) | 2020.10.22 |
Ch10_01 기본 문법 활용하기 (0) | 2020.10.22 |
Ch9_02 소프트웨어 개발 보안 구현 (0) | 2020.10.22 |