Notice
Recent Posts
Recent Comments
Link
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

차근차근

[2020 정보처리기사 필기] 응용 SW 기초 기술 활용 (1) 본문

대학교/자격증

[2020 정보처리기사 필기] 응용 SW 기초 기술 활용 (1)

SWKo 2020. 8. 13. 01:32

141. 운영체제의 개념

1. 운영체제(OS)의 정의

- 운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임이다. 스스로는 어떤 유용한 기능도 수행하지 않는다.

- 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다.

- 유틸리티와 하드웨어 사이에 존재한다.

 

2. 운영체제의 목적

- 처리 능력 향상, 사용 가능도 향상, 신뢰도 향상, 반환 시간 단축 등

- 처리 능력 : 일정 시간 내에 시스템이 처리하는 일의 양

- 반환 시간 : 시스템 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

- 사용 가능도 : 시스템을 사용할 필요가 있을 떄 즉시 사용 가능한 정도

- 신뢰도 : 시스템이 주어진 문제를 정확하게 해결하는 정도

 

3. 운영체제의 기능

- 프로세서(처리기, Processor), 기억장치(주기억장치, 보조기억장치), 입출력장치, 파일 및 정보 등의 자원을 관리한다.

- 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공한다.

- 사용자와 시스템 간의 편리한 인터페이스를 제공한다.

- 시스템의 각종 하드웨어와 네트워크를 관리, 제어한다.

- 데이터를 관리하고, 데이터 및 자원의 공유 기능을 제공한다.

- 시스템의 오류를 검사하고 복구한다.

- 자원 보호 기능을 제공한다.

- 입출력에 대한 보조 기능을 제공한다.

- 가상 계산기 기능을 제공한다.

 

4. 운영체제의 주요 자원 관리

- 프로세스 관리 : 프로세스 스케줄링 및 동기화, 프로세스 생성과 제거, 시작과 정지, 메시지 전달 등의 기능 담당

- 기억장치 관리 : 프로세스에게 메모리 할당 및 회수 관리 담당

- 주변장치 관리 : 입출력장치 스케줄링 및 전반적인 관리 담당

- 파일 관리 : 파일의 생성과 삭제, 변경, 유지 등의 관리 담당

 

5. 운영체제의 종류

- Window, UNIX, LINUX(UNIX와 호환 가능한 커널), MacOS(Apple이 만든 UNIX기반 운영체제), MS-DOS(Window이전에 사용)

- 단일 작업 처리 시스템에는 MS-DOS, 다중 작업 처리 시스템에는 Windows, UNIX, LINUX, MacOS 등이 사용된다.

- Windows, MacOS, MS-DOS는 개인용, UNIX, LINUX는 서버용 운영체제이다.

 

핵심

- 운영체제는 소프트웨어이다.

- 운영체제는 스스로 어떤 유용한 기능도 수행하지 않고 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 마련해 준다.

- 운영체제 성능 판단 요소 : 처리능력, 신뢰도, 사용 가능도, 반환 시간


142. Windows

1. Windows의 개요

- Windows는 마이크로사가 개발한 운영체제

- GUI, 선점형 멀티태스킹, OLE, PnP

 

2. 그래픽 사용자 인터페이스(GUI, Graphic User Interface)

- 키보드로 명령어를 직접 입력하지 않고, 마우스로 아이콘이나 메뉴를 선택하여 모든 작업을 수행하는 방식

 

3. 선점형 멀티태스킹(Preemptive Multi-Tasking)

- 동시에 여러 개의 프로그램을 실행하는 멀티태스킹을 하면서 운영체제가 각 작업의 CPU 이용 시간을 제어하여 응용 프로그램 실행중 문제가 발생하면 해당 프로그램을 강제 종료시키고 모든 시스템 자원을 반환하는 방식을 말한다.

- 하나의 응용 프로그램이 CPU를 독점하는 것을 방지할 수 있어 시스템 다운 현상 없이 더욱 안정적인 작업을 할 수 있다.

- 멀티태스킹 = 멀티 프로그래밍

 

4. PnP(Plug and Play, 자동 감지 기능)

- PnP는 컴퓨터 시스템에 프린터나 사운드 카드 등의 하드웨어를 설치했을 때, 해당 하드웨어를 사용하는 데 필요한 시스템 환경을 운영체제가 자동으로 구성해 주는 기능이다.

- 운영체제가 하드웨어의 규격을 자동으로 인식하여 동작하게 해주므로 PC 주변장치를 연결할 때 사용자가 직접 환경을 설정하지 않아도 된다.

- PnP 기능을 활용하기 위해서는 하드웨어와 소프트웨어 모두 PnP를 지원하여야 한다.

 

5. OLE(Object Linking and Embedding)

- OLE는 다른 여러 응용 프로그램에서 작성된 문서나 그림 등의 개체(Object)를 현재 작성 중인 문서에 자유롭게 연결(Linking)하거나 삽입(Embedding)하여 편집할 수 있게 하는 기능이다.

- OLE로 연결된 이미지를 원본 프로그램에서 수정하거나 편집하면 그 내용이 그대로 해당 문서에 반영된다.

 

6. 255자의 긴 파일명

- Windows에서는 파일 이름을 저장할 때 VFAT(Virtual File Allocation Table)을 이용하여 최대 255자까지 지정할 수 있다.

- 파일 이름으로는 몇 가지 특수문자를 제외한 모든 문자 및 공백을 사용할 수 있으며, 한글의 경우 127자까지 지정할 수 있다.

 

7. Single-User 시스템

- 컴퓨터 한 대한 사람만이 독점해서 사용한다.

 

핵심

- Plug and Play : 하드웨어를 시스템에 부착하면 자동 인식하여 동작하게 해줌

- OLE : 응용 프로그램 간의 자료 공유

- 멀티 태스킹 = 멀티 프로그래밍


143. UNIX / LINUX / MacOS

1. UNIX의 개요 및 특징

- 벨 연구소, MIT, General Electric이 공동 개발한 운영체제

- 시분할 시스템을 위해 설계된 대화식 운영체제로, 소스가 공개된 개방형 시스템이다.

- 대부분 C로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다.

- 크기가 작고 이해하기 쉽다.

- 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원한다.

- 많은 네트워킹을 제공하므로 통신망(Network) 관리용 운영체제로 적합하다.

- 트리 구조의 파일 시스템을 갖는다.

- 전문적인 프로그램 개발에 용이하다.

- 다양한 유틸리티 프로그램들이 존재한다.

- 각 프로세스는 시스템 호출(프로세스가 커널에 접근하기 위한 인터페이스를 제공하는 명령어)을 통해 커널의 기능을 사용하며, 프로세스 간 통신은 시그널(간단한 메시지), 파이프(단방향 통신), 소켓(쌍방향 통신) 등을 사용한다.

 

2. UNIX 시스템의 구성

- 커널(Kernel)

     - UNIX의 가장 핵심적인 부분

     - 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행된다.

     - 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당한다.

     - 프로세스(CPU 스케줄링) 관리, 기억장치 관리, 파일 관리, 입출력관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러 가지 기능을 수행

- 쉘(Shell)

     - 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기이다.

     - 시스템과 사용자 간의 인터페이스 역할을 담당한다.

     - DOS의 COMMAND.COM과 같은 기능을 수행한다.

     - 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재하며 보조 기억장치에서 교체 처리가 가능하다.

     - 파이프라인(둘 이상의 명령어를 함께 묶어 처리한 결과를 다른 명령의 입력으로 전환하는 기능) 기능을 지원하고 입출력 재지정을 통해

       출력과 입력의 방향을 변경할 수 있다.

     - 공용 Shell이나 사용자 자신이 만든 Shell을 사용할 수 있다.

- Utility Program

     - 일반 사용자가 작성한 응용 프로그램을 처리하는데 사용한다.

     - DOS에서의 외부 명령어에 해당한다.

     - 유틸리티 프로그램에서는 에디터, 컴파일러, 인터프리터, 디버거 등이 있다.

 

3. LINUX의 개요 및 특징

- 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제

- 프로그램 소스 코드가 무료로 공개되어 있기 때문에 프로그래머가 원하는 기능을 추가할 수 있고, 다양한 플랫폼에 설치하여 사용이 가능하며, 재배포가 가능하다.

- UNIX와 완벽하게 호환된다.

- 대부분의 특징이 UNIX와 동일하다.

 

4. MacOS의 개요 및 특징

- Apple이 UNIX를 기반으로 개발한 운영체제이다.

- 아이맥(iMac)과 맥북(MacBook) 등 애플 사에서 생산하는 제품에서만 사용이 가능하다.

- 드라이버 설치 및 intall과 uninstall의 과정이 단순하다.

 

핵심

- UNIX 특징 : 트리 구조의 파일 시스템, Multi-User, Multi-Tasking, 대화식 운영체제

- 백그라운드로 수행시키면 수행중인 명령문이 끝나기 전에 다른 명령문을 수행시킬 수 있다.

- 커널 : UNIX 시스템의 중심부, 프로세스 관리, 기억장치 관리 등을 담당, 부팅시 주기억장치에 적재되어 상주하면서 실행됨

- 파이프 : 프로세스간 통신으로 한 프로세스의 출력이 다른 프로세스의 입력으로 사용된다.

- 쉘 : 시스템과 사용자 간의 인터페이스를 담당, 명령어 해석기

- 시스템 호출 : 사용자와 운영체제 서비스를 연결해 주는 인터페이스로, 상위 숮ㄴ의 소프트웨어가 커널의 기능을 이용할 수 있도록 지원해 주는 것


144. 기억장치 관리의 개요

1. 기억장치 계층 구조의 특성

- 기억장치는 레지스터, 캐시 기억장치, 주기억장치, 보조기억장치를 계층 구조로 분류할 수 있다.

- 계층 구조에서 상위의 기억장치일수록 접근 속도와 접근 시간이 빠르지만, 기억 용량이 적고 고가이다.

- 주기억장치는 각기 자신의 주소를 갖는 워드 또는 바이트들로 구성되어 있으며, 주소를 이용하여 액세스할 수 있다.

- 레지스터, 캐시 기억장치, 주기억장치의 프로그램과 데이터CPU가 직접 액세스 할 수 있으나 보조기억장치에 있는 데이터는 직접 액세스할 수 없다.

- 보조기억장치에 있는 데이터 주기억장치에 적재된 후 CPU에 의해 액세스 될 수 있다.

 

2. 기억장치의 관리 전략의 개요

- 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재 시키는 시기, 적재 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것으로 반입(Fetch) 전략, 배치(Placement) 전략, 교체(Replacement) 전략이 있다.

 

3 .반입(Fetch) 전략

- 반입 전략은 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략이다.

- 요구 반입(Demand Fetch) : 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법이다.

- 예상 반입(Anticipatory Fetch) : 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법이다.

 

4. 배치(Placement) 전략

- 배치 전략은 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략이다.

- 최초 적합(First Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치시키는 방법

- 최적 적합(Best Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화(빈 기억 공간)를 가장 작게 남기는 분할 영역에 배치시키는 방법

- 최악 적합(Worst Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법

 

5. 교체(Replacement) 전략

- 교체 전략은 주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략이다.

- 교체 전략에는 FIFO, OPT, LRU, LFU, NUR, SCR 등이 있다.

 

핵심

- 주기억장치는 직접 접근 가능, 보조기억장치는 직접 접근 불가능

- 기억장치 관리 전략 : 반입(Fetch), 배치(Placement), 교체(Replacement)

- 반입(Fetch) 전략 : 요구 반입, 예상 반입

- 배치(Placement) 전략 : 최초 적합(가용 공간 중 가장 첫 번 째), 최적 적합(단편화 가장 작게), 최악 적합(단편화 가장 크게)

- 교체(Replacement) 전략 : FIFO, OPT, LRU, LFU, NUR, SCR


145. 주기억장치 할당 기법

1. 주기억장치 할당의 개념

- 주기억장치 할당 기법은 프로그램이나 데이터를 실행시키기 위해 주기억장치에 어떻게 할당할 것인지에 대한 내용이며 연속 할당 기법과 분산 할당 기법으로 분류할 수 있다.

- 연속 할당 기법 : 프로그램을 주기억장치에 연속적으로 할당하는 기법으로, 단일 분할 할당 기법(오버레이, 스와핑)다중 분할 할당 기법(고정 분할 할당 기법, 동적 분할 할당 기법)이 있다.

- 분산 할당 기법 : 프로그램을 특정 단위의 조각으로 나누어 주기억장치 내에 분산하여 할당하는 기법으로 페이징 기법세그먼테이션 기법으로 나눌 수 있다.

 

2. 단일 분할 할당 기법

- 단일 분할 할당 기법은 주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한 순간에는 오직 한 사용자만의 주기억장치의 사용자 영역을 사용하는 기법이다.

- 가장 단순한 기법으로 초기의 운영체제에 많이 사용하던 기법이다.

- 운영체제를 보호하고, 프로그램이 사용자 영역만을 사용하기 위해 운영체제 영역과 사용자 영역을 구분하는 경계 레지스터(Boundary Register)가 사용된다.

- 프로그램의 크기가 작을 경우 사용자 영역이 낭비될 수 있다.

- 초기에는 주기억장치보다 큰 사용자 프로그램은 실행할 수 없었으나 오버레이 기법을 사용하면서 이 문제가 해결되었다.

- 오버레이(Overlay) 기법

     - 오버레이 기법주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법이다.

     - 보조기억장치에 저장된 하나의 프로그램여러 개의 조각으로 분할한 후 필요한 조각을 차례로 주기억장치에 적재하여 프로그램을 실행한다.

     - 프로그램이 실행되면서 주기억장치의 공간이 부족하면 주기억장치에 적재된 프로그램의 조각 중 불필요한 조각이 위치한 장소

에 새로운 프로램의 조각을 중첩(Overlay)하여 적재한다.

     - 프로그램을 여러 개의조각으로 분할하는 작업 프로그래머가 수행해야 하므로 프로그래머는 시스템 구조나 프로그램 구조를 알아야 한다.

- 스와핑(Swiping) 기법

     - 스와핑 기법하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 다른 프로그램과 교체하는 기법이다.

     - 주기억장치에 있는 프로그램이 보조기억장치로 이동되는 것을 Swipe Out, 보조기억장치에 있는 프로그램이 주기억장치로 이동되는 것을 Swipe In 이라고 한다.

     - 하나의 사용자 프로그램이 완료될 때까지 교체과정을 여러 번 수행할 수 있다.

     - 가상기억장치의 페이징 기법으로 발전되었다.

 

3. 다중 분할 할당 기법

- 고정 분할 할당 기법 = 정적 할당 기법

     - 고정 분할 할당은 프로그램을 할당하기 전에 운영체제가 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고 준비상태 큐에서 준비중인 프로그램을 각 영역에 할당하여 수행하는 기법이다.

     - 프로그램을 실행하려면 프로그램 전체가 주기억장치에 위치해야 한다.

     - 프로그램이 분할된 영역보다 커서 영역 안에 못들어가는 경우가 발생할 수 있다.

     - 일정한 크기의 분할 영역에 다양한 크기의 프로그램이 할당되므로 내부 단편화 외부 단편화가 발생하여 주기억장치의 낭비가 많다.

     - 실행할 프로그램을 미리 알고 있어야 한다.

     - 다중 프로그래밍을 위해 사용되었으나 현재는 사용되지 않는다.

 

- 가변 분할 할당 기법 = 동적 할당 기법

     - 고정 분할 할당 기법의 단편화를 줄이기 위한 것으로, 미리 주기억장치를 분할해 놓는 것이 아니라 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할하는 기법이다.

     - 주기억장치를 효율적으로 사용할 수 있으며, 다중 프로그래밍의 정도를 높일 수 있다.

     - 고정 분할 할당 기법에 비해 실행될 프로세스 크기에 대한 제약이 적다.

     - 단편화를 상당 부분 해결할 수 있으나 영역과 영역 사이에 단편화가 발생할 수 있다.

 

핵심

- 연속 할당(로딩) 방법 : 단일 분할 할당(오버레이, 스와핑) + 다중 분할 할당(고정 분할 할당 기법, 동적 분할 할당 기법)

- 고정 분할 기억장치 할당 : 일정 수의 고정된 크기로 분할하여 준비상태 큐에서 준비 중인 프로그램을 각 영역에 할당하여 수행하는 기법

- 고정 분할 할당 기법은 실행할 프로그램 전체가 주기억장치에 적재된 후 실행하기 때문에 주기억장치와 보조기억장치 사이에 데이터 이동은 자주 발생하지 않는다.

Comments