[정보처리기사 실기] 응용 SW 기초 기술 활용#1 (운영체제(OS)의 특징)
1. 운영체제(OS)의 특징
2. 데이터베이스 기초 활용
3. 네트워크 기초 활용
4. 기본 개발환경 구축
1. 운영체제의 특징
1) 운영체제(OS : Operation System)?
-> 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 이도록 인터페이스를 제공해주는 소프트웨어.
운영체제의 특징
- 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영함
-> 사용자에게 편리성 제공
- 컴퓨터 시스템과 사용자 간의 인터페이스 기능 담당
2) 운영체제의 종류
1. 윈도우즈(Wiindows)
2. 유닉스(+리눅스)
3. 맥(MAC)
4. 안드로이드
1. 윈도우즈(Windows)
-> MS-DOS의 멀티태스킹 기능과 GUI환경을 제공하는 응용 프로그램.
- 윈도우즈(Windows)의 특징
- 그래픽 사용자 인터페이스(GUI)
- 선점형 멀티태스킹 방식
- 자동감지 기능(Plug and Play)
- OLE(Object Linking and Embedding)
특징 |
설명 |
그래픽 사용자 인터페이스(GUI) |
키보드 없이 마우스로 아이콘이나 메뉴를 선택하여 |
선점형 멀티태스킹 방식 |
동시에 여러 프로그램을 실행하면서 운영체제가 각 작업의 CPU 이용 시간을 제어 |
자동감지 기능(Plug and Play) |
하드웨어를 설치 했을 때 필요한 시스템 환경을 운영체제가 자동으로 구성 |
OLE(Object Linking Embedding) |
개체를 현재 작성 중인 문서에 자유롭게 연결 또는 삽입하여 편집 |
2. 유닉스(Unix) 계열
-> 교육 및 연구 기관에서 사용되는 범용 다중 사용자 방식의 시분할 시스템 운영체제.
-> 처음부터 다양한 시스템에 서로 이식 및 멀티 태스킹과 다중 사용자 지원
- 유닉스 계열 특징
- 대화식 운영체제 기능
- 다중 작업 기능 제공
- 다중 사용자 기능 제공
- 이식성 제공
- 계층적 트리 구조 파일 시스템 제공
특징 |
설명 |
대화식 운영체제 기능 |
*프롬프트가 나타난 상태에서 사용자가 명령을 입력하면 시스템은 그 명령을 수행하는 사용자 명령 기반의 대화식 운영체제 |
다중 작업 기능 |
다수의 작업(프로세스)이 중앙처리장치(CPU)와 같은 공용자원을 나누어 사용하여 한 번에 하나 이상의 작업을 숭행하는 기능 제공 |
다중 사용자 기능 |
여러 대의 단말(키보드, 모니터)이 하나의 컴퓨터에 연결되어, 여러 사람이 동시에 시스템을 사용하여 각각의 작업을 수행할 수 있는 기능 제공 |
이식성 |
대부분 C언어로 구현되있고 시스템 프로그램이 모듈화 되어 있기 때문에 다른 하드웨어로 쉽게 이식 가능 |
계층적 트리 구조 파일 시스템 제공 |
계층적 트리 구조이기 때문에 통합적인 파일 관리 가능 |
*프롬프트? -> 컴퓨터 터미널에서의(CLI) 명령대기 상태
유닉스 계열의 종류
- 리눅스
- Mac
- 안드로이드
리눅스
-> 유닉스 기반으로 개발되고, 소스코드가 공개된 오픈소스 기반의 운영체제
-> 대화식 운영체제, 다중 작업 기능, 다중 사용자 기능, 이식성, 계층적 트리 구조 파일 시스템 제공
Mac
-> 애플이 유닉스 기반으로 개발한 그래픽 사용자 인트페이스 기반의 운영체제
안드로이드
-> 휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어.
-> 웹 브라우저, 이메일 클라이언트 등 표준 응용 프로그램을 포함하고 있는 운영체제
3) 운영체제의 핵심기능
- 메모리 관리
- 프로세스 관리
프로세스 -> 현재 실행중인 프로그램
기능 |
설명 |
메모리 관리 |
프로그램의 실행이 종료될 때까지 메모리를 가용한 상태로 유지 및 관리 하는 기능 메모리에 있는 프로그램은 중앙처리장치(CPU)로 이동하여 처리 ※CPU는 가상 주소를 메모리는 물리주소를 사용하는데 *MMU가 주소를 매핑하는 역할 수행한다. |
프로세스 관리 |
CPU와 데이터를 송수신 하는 상황에서 현재 메모리 사용 부분, 메모리 입/출력 순서, 메모리 공간 확보 등 프로세스에 대한 종합적인 관리 기법 |
*MMU(Memory Mangement Unit) -> CPU가 메모리에 접근하는 것을 관리하는 컴퓨터 하드웨어 부품
(가상 메모리 주소를 실제 메모리 주소로 변환하는 장치)
메모리 관리 기법 종류
반입 기법(when)
배치 기법(where)
할당 기법(how)
교체 기법(what)
기법 |
설명 | 기법 세부 종류 |
반입 기법(when) |
주기억장치에 저장할 다음 프로세스의 반입 시기를 결정하는 기법 -> 메모리 적재 시기 결정 | 요구 반입 기법 호출 반입 기법 |
배치 기법(where) |
디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장 할 것인지 결정하는 기법 -> 메모리 저장 위치 결정(where) | 최초 적합(first fit) 최적 적합(best fit) 최악 적합(worst fit) |
할당 기법(how) |
실행해야 할 프로세스를 주기억장치에 어떤 방법으로 저장 할 것인지 결정하는 기법 -> 메모리 저장 방법 결정(how) | 연속 할당 기법 분산 할당 기법 |
교체 기법(what) |
재배치 기법으로 주기억장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지 결정하는 기법 -> 메모리 교체(제거) 대상 결정(what) | 프로세스의 Swap in/oout FIFO, Optimal, LRU, LFU, 시계 알고리즘, MFU |
- 생성(Create)
- 준비(Ready)
- 실행(Running)
- 대기(Waiting)
- 완료(Complete)
프로세스 상태 |
설명 |
생성(Create) |
사용자에 의해 프로세스가 생성 |
준비(Ready) |
CPU를 할당 받을 수 있는 상태 준비 리스트(Ready List) |
실행(Running) |
프로세스가 CPU를 할당받아 동작 중인 상태 |
대기(Waiting) |
프로세스 실행 중 입/출력 처리 등으로 인해 CPU를 양도하고 입/출력 처리 완료까지 대기 리스트(Waiting List)에서 기다리는 상태 대기 리스트(Waiting List) |
완료(Complete) |
프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태 |
프로세스 상태전이 |
설명 |
디스패치(Dispatch) |
준비 상태에 있는 여러 프로세스 중 실행될 프로세스를 선정(Scheduling)하여 CPU를 할당(Dispatching) 준비 -> 실행 |
타이머 런 아웃(Timer Run Out) |
CPU를 할당 받은 프로세스는 지정된 시간이 초과되면 스케쥴러에 의해 PCB 저장, CPU 반납 후 다시 준비 상태로 전이 타임 슬라이스(Time Slice)만료, 선점(Preemption)시 타임아웃 발생 실행 -> 준비 |
블록(Block) |
실행 상태에 있는 프로세스가 지정된 할당 시간을 초과하기 전에 입출력이 완료될 때 까지 대기 상태로 전이 즉시 실행이 불가능한 시스템 콜, I/O작업 시작, 프로레스간 통신 시 Block이 발생 실행 -> 대기 |
웨이크 업(Wake up) |
입출력이 종료되면 대기 상태의 프로세스에게 입출력 종료 사실을 Wait & Signal등에 의해 알려주고, 준비 상태로 전이 대기 -> 준비 |
Swap-in |
프로세스에게 다시 기억장치가 할당 될 경우 지연 준비 -> 준비 or 지연 대기 -> 대기 |
Swap-out |
프로세스가 기억장치를 잃을 경우 준비 -> 지연 준비 or 대기 -> 지연 대기 |
- 플랫폼 가상화
- 리소스 가상화
종류 |
설명 |
플랫폼 가상화 |
하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어, 마치 독립된 환경을 만들어 낸 것 처럼 보이게 하는 방법 |
리소스 가상화 |
게스트 소프트웨어 위에서, 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법 메모리, 네트워크, 주기억장치 등을 결합하거나 나누기 때문에 사용자는 가상화 된 물리적 장치들이 어떤 위치에 있는기 알기 어려움 |
- 컴퓨팅 가상화
- 스토리지 가상화
- I/O 가상화
- 컨테이너
- 분산처리 기술(Distributed Computing)
- 네트워크 가상화 기술
기술요소 |
설명 |
컴퓨팅 가상화 |
물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술 서버 가상화를 통해 하나의 시스템에서 1개 이상의 OS를 동시에 가동 -> 서버 이용률 향상 ex) 하이퍼 바이저 |
스토리지 가상화 |
스토리지와 서버 사이에 소프트웨어/하드웨어 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술 다른 기종의 스토리지 시스템의 통합을 가능하게 함 ex) 분산 파일 시스템 |
I/O가상화 |
서버와 I/O 디바이스 사이에 위치하는 미들웨어 계층으로, 서버의 I/O자원을 물리적으로 분리하고 케이블과 스위치 구성을 단순화하여 효율적인 연결을 지원하는 기술 ex) 가상 네트워크 인터페이스 카드 |
컨테이너 |
컨테이너화된 애플리케이션들의 단일 OS상에서 실행되도록 해주는 기술 하이퍼바이저 없이 OS가 격리된 프로레스로 동작하기 때문에 오버헤드가 낮음 ex) 도커(Docker) |
분산처리 기술 |
여러 대의 컴퓨터 계산 및 저장능력을 이용하여 많은 양의 계산문제나 대용량의 데이터를 처리하고 저장하는 기술 |
네트워크 가상화 기술 |
물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단으로 중계장치(라우터, 게이트웨이)의 가상화를 통한 가상 네트워크를 지원하는 기술 |
- 사설 클라우드
- 공용 클라우드
- 하이브리드 클라우드
분류 |
설명 |
사설 클라우드 |
기업 또는 조직 내부에서 보유하고 있는 컴퓨터 자원(IDC, Server)을 사용하여 내부에 구축되어 운영되는 클라우드 자체 컴퓨팅 자원으로 모든 H/W, S/W, 데이터 수용 직접적인 통제로 보안성 뛰어남 |
공용 클라우드 |
클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드 확장성, 유연성이 뛰어남 |
하이브리드 클라우드 |
사설 클라우드와 공용 클라우드 둘다 사용하는 클라우드 보안성, 확장성, 유연성 우수 |
- 인프라형 서비스 : IaaS(Infrastructure as a Service)
- 플랫폼형 서비스 : PaaS(Platfrom as a Service)
- 소프트웨어형 서비스 : SaaS(Software as a Service)
유형 |
설명 |
인프라형 서비스(IaaS) |
서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스 컴퓨팅 자원에 운영체제나 애플리케이션 등의 소프트웨어 탑재 및 실행 하위의 클라우드 인프라를 제어하거나 관리하지 않지만 스토리지, 애플리케이션에 대해 제어권이 있다. |
플랫폼형 서비스(PaaS) |
인프라를 생성, 관리 하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스 SaaS의 개념을 개발 플래폼에도 확장한 방식 OS, 애플리케이션과 애플리케이션 호스팅 환경 구성의 제어권이 있다. |
소프트웨어형 서비스(SaaS) |
소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스 주문형 소프트웨어 |
'0 + Study > 0 + 정보처리기사(실기)' 카테고리의 다른 글
[정보처리기사 실기] 응용 SW 기초 기술 활용#2 (데이터베이스 기초 활용) (0) | 2020.10.20 |
---|---|
[정보처리기사 실기] 프로그래밍 언어#2 (0) | 2020.10.04 |
[정보처리기사 실기] 프로그래밍 언어#1 (0) | 2020.10.04 |
[정보처리기사 실기]서버 프로그램 구현#2 (2) | 2020.09.26 |
[정보처리기사 실기]서버 프로그램 구현#1 (0) | 2020.09.23 |