-
응용 SW 기초 기술 활용 - 운영체제의 특징정보처리기사(자격증)/응용 SW 기초 기술 활용 2020. 10. 15. 13:06
운영체제(OS, Operating System)의 개념
- 운영체제는 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어
- 운영체제는 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영함으로써 사용자에게 편리성을 제공
- 운영체제는 컴퓨터 시스템과 사용자 간의 인터페이스 기능을 담당
1. 운영체제 종류
1) 윈도즈(Windows) 운영체제
- 윈도즈는 MS-ODS의 멀티테스킹 기능과 GUI 환경을 제공하는 응용 프로그램으로서, 마이크로소프트사가 개발한 운영체제
* 특징
특징 설명 그래픽 사용자 인터페이스(GUI) 제공 키보드 없이 마우스로 아이콘이나 메뉴를 선택하여 작업을 수행하는
그래픽 기반의 인터페이스 방식선점형 멀티테스킹 방식 제공 동시에 여러 개의 프로그램을 실행하면서 운영체제가 각 작업의 CPU
이용 시간을 제어자동감지 기능 제공 하드웨어를 설치했을 때 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 자동감지 기능 제공 OLE(Object Linking and Embedding) 개체를 현재 작성 중인 문서에 자유롭게 연결 또는 삽입하여 편집할 수 있게 하는 기능 제공 2) 유닉스(Unix) 운영체제
- 유닉스는 교육 및 연구 기관에서 사용되는 범용 다중 사용자 방식의 시분할 운영체제
- 유닉스는 처음부터 다양한 시스ㅔㅌㅁ에 서로 이식할 수 있고 멀티 테스킹과 다중 사용자를 지원하도록 설계되었다.
* 특징
특징 설명 대화식 운영체제 기능 제공 프롬포트가 나타난 상태에서 사용자가 명령을 입력하면 시스템은 그 명령을 수행하는 사용자 명령 기반의 대화식 운영체제 기능을 제공 다중 작업 기능 제공 다수의 작업(프로세스)이 중앙처리장치(CPU)와 같은 공용자원을 나누어 사용하여 한번에 하나 이상의 작업을 수행하는 기능 제공 다중 사용자 기능 제공 여러 대의 단말(키보드와 모니터)이 하나의 컴퓨터에 연결되어서, 여러 사람이 동시에 시스템을 사용하여 각각의 작업을 수행할 수 있는 기능 제공 이식성 제공 90% 이상 c 언어로 구현되어 있고, 시스템 프로그램이 모듈화되어 있어서 다른 하드웨어 기종으로
쉽게 이식 가능계층적 트리 구조 파일 시스템 제공 유닉스는 계층적 트리 구조를 가짐으로써 통합적인 파일 관리가 용이 3) 리눅스(Linux) 운영체제
- 리눅스는 유닉스를 기반으로 개발되고, 소스 코드가 공개된 오픈 소스 기반의 운영체제
- 리눅스는 데비앗, 레드헷, fedora, ubuntu, CentOS 와같이 다양하게 출시 되고 있다.
- 유닉스 계열의 운영체제이므로 대화식 운영체제, 다중 작업 기능, 다중 사용자 기능, 이식성, 계층적 트리 구조 파일 시스템을 갖는다.
4) 맥(Mac) 운영체제
- 맥 운영체제는 애플이 유닉스를 기반으로 개발한 그래픽 사용자 인터페이스 기반의 운영체제
- 애플사는 1999년 OS X로 업데이트, 이후에는 클라이언트 버전, 서버 제품 등으로 제품군을 확대, 2017년 OS X 시에라, 2018년 모하비
등을 지속적으로 발표
5) 안드로이드 운영체제
- 안드로이드는 휴대 전화를 비롯한 휴대용 장치들을 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 플그램(웹 브라우저,
이메일 클라이언트 등)을 포함하고 있는 운영체제
* 특징
특징 설명 리눅스 기반 안드로이드는 리눅스 커널 위에서 동작 자바와 코틀린 언어 - 고수준 언어를 사용해 응용 프로그램을 작성
- 생산성이 높으며 전문 지식이 없어도 개발 가능런타임 라이브러리 - 컴파일된 바이트 코드 구동 가능 안드로이드 소프트웨어 개발 키트(SDK) - 응용 프로그램을 개발하는데 필요한 각종 도구와 API를 제공
운영체제 기본 명령어 활용
1. 운영체제 제어
- 운영체제를 제어하기 위한 방법은 CLI와 GUI가 있다.
2. 윈도우 명령어
3. 리눅스 명령어
운영체제 핵심 기능 파악
1. 운영체제 핵심 기능
- 운영체제에는 중앙처리장치, 메모리, 스토리지, 주변 기기 등을 적절히 관리한다.
- 초기에는 메모리 용량에 제한이 많아 소프트웨어 개발 시 메모리 관리가 매우 중요했으나 최근에 들어서는 운영체제에서 대부분
자동으로 관리해주므로 사용이 편리
- 개발 및 시스템 환경이 클라우드화 되면서 자웡네 대한 관리 노력이 줄었다.
* 운영체제 핵심 기능
핵심 기능 설명 메모리 관리 - 프로그램의 실행이 종료될 때까지 메모리를 가용한 상태로 유지 및 관리하는 기능
- 프로그램 실행 중 메모리가 꽉 차게되면 시스템의 속도가 느려지고 때로는 시스템이 멈추는 현상 발생
- 메모리에 있는 프로그램은 CPU로 이동하여 처리(CPU는 가상주소, 메모리는 물리 주소를 사용하는데 MMU가 주소를 매핑)프로세스 관리 - CPU와 데이터를 송수신하는 상황에서 현재 메모리 사용 부분, 메모리 입출력 순서, 메모리 공간 확보 등 프로세스에 대한
종합적인 관리 기법
- 프로세스 관리 기법에는 '일시 중지 및 재실행', '동기화', '통신', '교착상태 처리', '프로세스 생성 삭제'가 있다.' MMU(Memory Management Unit)
- CPU가 메모리에 접근하는 것을 관리하는 컴퓨터 하드웨어 부품으로 가상 메모리 주소를 실제 메모리 주소로 변환하는 장치
(1) 메모리 관리 기능
- 메모리 관리 기법에는 반입 기법, 배치 기법, 할당 기법, 교체 기법이 있다.
기법 설명 세부 기법 반입 기법 - 주기억장치에 적재할 다음 프로세스의 반입 시기를 결정하는 기법
- 메모리로 적재 시기 결정(when)요구 반입 기법
호출 반입 기법배치 기법 - 디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정
- 메모리 적재 위치(Where)최초 적합(first-fit)
최적 적합(best-fit)
최악 적합(worst-fit)할당 기법 - 실행해야 할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지 결정
- 메모리 적재 방법 결정(how)연속 할당 기법
분산 할당 기법교체 기법 - 재배치 기법으로 주기억장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지
를 결정
- 메모리 교체 대상 결정(who)프로세스의 Swa in/out
FIFO, Optimal, LRU, LFU, 시계 알고리즘
MFU2. 프로세스 관리
(1) 프로세스 상태
- 하나의 프로세스는 여러 가지 이벤트에 의해 일련의 서로 구분되는 상태 변화를 겪는다.
- 생성 상태, 준비 상태, 실행 상태, 대기 상태, 완료 상태를 가질 수 있다.
* 프로세스의 상태
프로세스 상태 설명 생성 상태 사용자에 의해 프로세스가 생성된 상태 준비 상태 - CPU를 할당 받을 수 있는 상태
- 준비 리스트 : 각각 우선순위를 부여하여 가장 높은 우선순위를
갖는 프로세스가 다음 순서에 CPU를 할당 받음실행 상태 - 프로세스가 CPU를 할당받아 동작 중인 상태 대기 상태 - 프로세스가 실행 중 입출력 처리 등으로 인해 CPU를 양도하고 입출력 처리가 완료끼ㅏ지 대기 리스트에서 기다리는 상태
- 대기 리스트 : 우선순위가 존재하지 않음완료 상태 - 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태 (2) 프로세스 상태 전이
- 프로세스의 상태 전이는 하나의 작업이 컴퓨터 시스템에 입력되어 완료되기까지 프로세스의 상태가 준비, 실행 및 대기 상태로 변하는 활동을 말한다.
- 활동 상태란 프로세스가 기억장치를 할당받은 상태
- 지연 상태란 프로세스가 기억장치를 할당받지 못한 상태
* 프로세스 상태 전이
프로세스 상태 전이 설명 디스패치
(Dispatch)- 준비 상태에 있는 여러 프로세스(Ready list) 중 실행될 프로세스를 선정하여 CPU를 할당(Dispatching) -> 문맥교환 발생
- 프로세스는 준비 상태에서 실행상태로 전이타이머 런 아웃
(timer run out)- CPU를 할당받은 프로세스는 지정된 시간이 초과되면 스케줄러에 의해 PCB저장, CPU 반납 후 다시 준비 상태로 전이
- 프로세스는 실행 상태에서 준비 상태로 전이
- 타임 슬라이스(time slice) 만료, 선점(preemption) 시 타임아웃 발생블록
(block)- 실행 상태에 있는 프로세스가 지정된 할당시간을 초과하기 전에 입출력이나 기타 사건이 발생(block) 하면 CPU를
스스로 반납하고 입출력이 완료될때까지 대기 상태로 전이
- 프로세스는 실행 상태에서 대기 상태로 전이
- 즉시 실행 불가능한 시스템 콜, I/O 작업 시작, 프로세스간 통신 시 BLock 발생웨이크 업
(wake-up)- 어느 순간에 입출력이 종료되면 대기 상태의 프로세스에게 입출력 종료 사실을 wait&signal 등에 의해서 알려주고
준비 상태로 전이됨
- 프로세스는 대기 상태에서 준비 상태로 전이Swap-in - 프로세스에게 다시 기억장치가 할당될 경우
- 지연 준비 상태나 지연 대기 상태에서 준비 상태나 대기 상태로 전이Swap-out - 프로세스가 기억장치를 잃은 경우
- 준비 상태나 대기 상태에서 지연 준비 상태나 지연 대기 상태로 전이3) 프로세스 스케줄링
(1) 프로세스 스케줄링
- 프로세스 스케줄링은 CPU를 사용하려고 하는 프로세스들 사이의 우선 순위를 관리하는 작업
- 스케줄링은 처리율과 CPU 이용율으 증가시키고 오버헤드, 응답시간, 반환시간, 대기시간을 최소화 하기 위한 방법
- 특정 프로세스가 적합하게 실행되도록 프로세스 스케줄링에 의해 프로세스 사이에서 CPU 교체가 일어난다.
- 프로세스 스케줄링을 실행하는 스케줄러의 유형에는 장기, 중기, 단기 스케줄러가 있다.
(2) 프로세스 스케줄링 주요 용어
용어 설명 서비스 시간 프로세스가 결과를 산출하기 까지 걸리는 시간 응답시간
(반환시간)- Response Time 또는 Turnaround time
- 프로세스 들이 입력되어 수행하고 결과를 산출하기까지 소요하는 시간
- 응답시간 = 대기시간 + 수행시간평균 응답시간 - 대기 큐의 프로세스가 결과를 산출하기 소요되는 시간의 평균 대기시간 - 프로세스가 프로세서에 할당 되기까지 큐에 대기하는 시간
- 대기시간이 '0' 인 프로세스도 평균 대기시간에 합산하여 결과 도출평균 대기시간 - 프로세스가 도착 즉시 프로세스도 평균 대기시간에 합산하여 결과 도출
- 프로세스가 대기 큐에서 대기하는 평균 시간종료시간 - 요구되는 Processing time을 모두 수행하고 종료된 시간 시간 할당량 - 한 프로세스가 프로세서를 독점하는 것을 방지하기 위해 서비스되는 시간 할당량 응답률 - (대기시간 + 서비스시간) / 서비스 시간
- HRN(Highest Response ratio Next) 스케줄링에서 사용
- HRN 스케줄에서 응답률이 높으면 우선순위가 높다고 판단(3) 프로세스 스케줄링 유형
- 프로세스 스케줄링 유형에는 선점형 스케줄링과 비선점형 스케줄링이 있다.
- 선점형 스케줄링 (SMMR )
Shortest Remaining Imte first
다단계 큐(Multi-level- queue)
다단계 피드백 큐(Multi-level-feedback queue)
라운드 로빈(Round Robin)
- 비선점형 스케줄링(우기 HFS)
1. 우선순위
2. 기한부
3. FCFS
4. HRN
5. SJF
(4) 프로세스 스케줄링 알고리즘
선점형 스케줄링 알고리즘의 유형
알고리즘 유형 동작 방식 특징 라운드 로빈 프로세스는 같은 크기의 CPU 시간을 할당(시간 할당량), 프로세스가 할당된 시간 내에 처리 완료를 못하면 큐 리스트의 가장 뒤로 보내지고 CPU는 다음 프로세스로 넘어감 균등한 CPU 점유시간
시분할 시스템을 사용SRT(Short remaining time first) 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점 짧은 수행시간 프로세스
우선다단계 큐 -작업들을 여러 종류 그룹으로 분할, 여러개의 큐를 이용하여 상위단계 작업에 의한 하위 단계 작업이 선점
- 각 큐는 자신만의 독자적인 스케줄링을 가짐독립된 스케줄링 큐 다단계 피드백 큐 - 입출력 위주와 CPU위주인 프로세스의 특성에 따라 큐마다 서로 다른 CPU시간 할당량을 부여
-FCFS(FIFO)와 라운드 로빈 스케줄링 기법을 혼합한 것으로, 새로운 프로세스는 높은 우선순위, 프로세스의 실행시간이 길어질수록 점점 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식을 적용큐마다 다른 시간 할당량
마지막 단계는 라운드 로빈으로 처리비선점형 스케줄링 알고리즘의 유형
알고리즘 유형 동작 방식 특징 우선순위
(Priority)- 프로세스별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당
- 동일 순위는 FCFS주요/긴급 프로세스에 대한 우선 처리
설정, 자원 상황 등에 따른 우선순위 설정기한부
(DeadLine)- 작업들이 명시된 시간이나 기한 내에 완료되도록 계획 요청에 명시된 시간 내 처리를 보장 FCFS
(First Come
First Service)- 프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당함
- FIFO 알고리즘이라고도 한다.도착한 순서대로 처리 SJF
(Shortest job First)- 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시 까지 자원 점유
- 준비 큐 작업 중 가장 짧은 작업부터 수행, 평균 대기 시간 최소
- CPU 요구 시간이 긴 작업과 짧은 작업 간의 불평등이 심하여, CPU 요구 시간이 긴 프로세스는 기아 현상 발생기아현상 발생가능성 HRN
(Highest Response
Ratio next)- 대기 중인 프로세스중 현재 응답률이 가장 높은 것을 선택
- SJF의 약점인 기아 현상을 보완한 기법으로 긴 작업과 짧은 작업 간의 불평등 심화
- HRN의 우선순위 = (대기 시간 + 서비스 시간) / 서비스 시간기아 현상(Starvation) 최소화 기법
가상화, 클라우드
가상화(Virtualization) 개념
- 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술
- 대부분의 서버는 용량의 20% 정도만을 사용하는데, 가상화를 통해 서버의 가동률을 60~70%이상으로 올릴 수 있다.
1. 가상화의 종류
종류 설명 플랫폼 가상화 하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 마치 독립된 환경을 만들어 낸 것처럼 보여주는 기법 리소스 가상화 - 게스트 소프트웨어 위에서 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법
- 메모리, 저장장치, 네트워크 등을 결합하거나 나누기 때문에 사용자는 가상화된 물리적 장치들이 어떤 위치에
있는지 알기 어려움2. 가상화 기술요소
기술요소 설명 컴퓨팅 가상화 - 물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술
- 서버 가상화를 통해 하나의 시스템에서 1개 이상의 운영체제를 동시에 가동시킬 수 있으므로, 서버 이용률이 크게 향상
ex) 하이퍼바이저스토리지 가상화 - 스토리지와 서버 사이에 소프트웨어/하드웨어 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수
있도록 하는 기술
- 이기종 스토리지 시스템의 통합을 가능하게 하는 기술
ex) 분산 파일 시스템I/O 가상화 - 서버와 I/O 디바이스 사이에 위치하는 미들웨어 계층으로, 서버의 I/O 자원을 물리적으로 분리하고
케이블과 스위치 구성을 단순화하여 효율적인 연결을 지원하는 기술
ex) 가상 네트워크 인터페이스 카드컨테이너 - 컨테이너화된 애플리케이션들이 단일 운영체제상에서 실행되도록 하는 기술
- 하이퍼바이저 없이 운영체제가 격리된 프로세스로 동작하기 때문에 오버헤드가 낮음
ex) 도커분산처리 기술 - 여러 대의 컴퓨터 계산 및 저장능력을 이용하여 커다란 계산문제나 대용량의 데이터를 처리하고 저장하는 기술 네트워크 가상화 기술 - 물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단으로 중계장치(라우터, 스위치 등)의 가상화를 통한
가상 네트워크(Virtual NewWork)를 지원하는 기술3. 클라우드 컴퓨팅(Cloud Computing)
- 클라우드 컴퓨팅은 인터넷을 통해 가상화된 컴퓨터 시스템 리소스(IT 리소스)를 제공하고, 정보를 자신의 컴퓨터가 아닌
클라우드(인터넷)에 연결된 다른 컴퓨터로 처리하는 기술
- 구성 가능한 컴퓨팅 자원(예: 컴퓨터 네트워크, 데이터 베이스, 서버, 히스토리지, 애플리케이션, 서비스)에 대해 어디서나 접근 가능
1) 클라우드 컴퓨팅 분류
- 클라우드 컴퓨팅은 사설 클라우드, 공용 클라우드, 하이브리드로 분류된다.
분류 주요내용 사설 클라우드 - 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원(IDC, 서버 등)을 사용하여 내부에 구축되어 운영되는 클라우드
- 자체 컴퓨팅 자원으로 모든 하드웨어, 소프트웨어, 데이터를 수용
- 직접적인 통제가 가능하며 보안성을 높일 수 있음공용 클라우드 - 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드
- 일정한 비용을 지불하고 하드웨어, 소프트웨어 등을 사용
- 확장성, 유연성 등이 뛰어남하이브리드 클라우드 - 기업 또는 조직 내부 자원을 이용한 사설 클라우드와 공용클라우드를 모두 사용하는 클라우드
- 사설 클라우드의 약점인 구축 비용 문제와 공용 클라우드의 약점인 보안성 확보 문제를 해결
- 사용 업무의 중요도, 보안성 확보의 중요도 등에 따라 이용 형태 변경가능2) 클라우드 컴퓨팅 유형
IaaS, PaaS, SaaS
유형 설명 인프라형 서비스
(Infrastructure as a Service)- 서버, 스트로지 같은 시스템 자원을 클라우드로 제공하는 서비스
- 컴퓨팅 자원에 운영체제나 애플리케이션 등의 소프트웨어 탑재 및 실행
- 하위의 클라우드 인프라를 제어하거나 관리하지 않지만 스토리지, 애플리케이션에 대해서는 제어권을 가짐플랫폼형 서비스
(PlatForm as a Service)- 인프라를 생성, 관리, 하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는
서비스
- SaaS의 개념을 개발 플랫폼에도 확장한 방식으로 개발을 위한 플랫폼을 구축할 필요 없이, 필요한 개발
요소를 웹에서 빌려 쓸 수 있게 하는 모델소프트웨어 형 서비스
(software as a Service)- 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여
소프트웨어를 서비스 형태로 이용하는 서비스
- 주문형 소프트웨어라고도 함'정보처리기사(자격증) > 응용 SW 기초 기술 활용' 카테고리의 다른 글
응용 SW 기초 기술 활용 - 네트워크 기초 활용하기 (0) 2020.10.15 응용 SW 기초 기술 활용 - 데이터베이스 기초 활용하기 (0) 2020.10.15