본문 바로가기
시험

#실기 P3 응용 SW 기초 기술 활용 - 운영체제

by 키튼햄 2023. 3. 4.

Ch.1 운영체제

S1. 운영체제 기초 활용

운영체제

- 사용자가 컴퓨터 HW를 쉽게 사용할 수 있도록 인터페이스를 제공하는 SW. & 자원관리자 역할

- 하드웨어(HW) : 중앙처리장치, 기억장치, 통신장치, 입출력장치

 

운영체제 목적

- 처리능력 (Throughtout) : 일정한 단위 시간 내에 처리할 수 있는 일의 양

- 반환 시간 (Trun Around Time) : 작업 시작부터 결과 얻을 때까지 걸리는 시간

- 사용가능도 (Availability) : 얼마나 빨리 사용할 수 있는지

- 신뢰도 (Reliability) : 문제를 정확하게 해결할 수 있는지

 

운영체제 발달 과정

#1950년대

  • 일괄처리 시스템  -데이터를 모아두었다가 묶어서 처리
  • 버퍼링  -입출력장치와 프로세서의 속도차이를 보완하기 위해 다음 레코드를 주기억장치에 보관하여 CPU가 필요로 하는 레코드를 기다림 없이 전달해 줄 수 있는데, 이때 이 레코드를 저장하는 주기억장치를 버퍼 라고함.
  • 스풀링  -버퍼링과 달리 디스크를 매우 큰 버퍼처럼 사용. 여러 작업의 입출려과 계산을 함께 가능

 

#1960년대

  • 다중 프로그래밍  -여러프로그램을 메모리에 나눠 적재한 후 번갈아 할당하며 여러 프로그램을 동시에 실행
  • 시분할 시스템  -여러 사용자에게 짧은 간격으로 프로세서를 번갈아가며 할당해 마치 혼자 사용하는 것처럼 사용가능
  • 다중 처리 시스템  -하나의 시스템에서 여러개의 프로세서를 사용하는 시스템
  • 실시간 시스템  -데이터 발생 즉시 응답

 

#1970년대 초반

  • 다중 모드  -일괄, 시분할, 실시간, 다중처리 모두 제공
  • 범용 시스템

 

#1970년대 중반 이후

  • 분산 처리 시스템  -독립적 처리능력을 가진 컴퓨터 시스템을 통신망으로 연결해 네트워크 갓에서 서로 통신하며 협력하는 처리 시스템
  • 병렬 처리 시스템  -하나 이상의 연산 동시 수행해 연산속도 증가

 

#2000년대

  • 모바일 및 임베디드 
    • 임베디드  -내장형 시스템, 기계나 기타 제어가 필요한 시스템에 대해 특정 기능을 수행하는 시스템. 장치 내에 존재
  • 가상화 및 클라우드 컴퓨팅
    • 가상화  -물리적 하드웨어 등을 사용자로부터 은폐하여, 대체품으로 논리적인 리소스 제공, 하나의 물리적인 리소스를 여러개로 보이게 한느 기술
      • 호스트 OS형, 하이버파이저형, 컨테이너형
  • 클라우드 컴퓨팅  -자신의 컴퓨터가 아닌 클라우드(인터넷)에 연결된 다른 컴퓨터로 처리하는 기술
    • IaaS 인프라형, PaaS 플랫폼형, SaaS 서비스형

 

 

운영체제 계열

1) 윈도우 (Windows)

- 아이콘 클릭, 버그 수정에 시간이 걸림, 보안에 취약

  • 선점형 멀티태스킹  -운영체제가 수행 중인 각 프로그램의 실행시간을 할당하고 실행 중에 문제가 발생하면 해당 프로그램을 강제 종료시킨 후, 모든 시스템 자원을 반환하는 멀티태스킹 운영 방식
  • PNP (Plug&Play)  -장치와 장치 연결시 별도의 사용자 조작 필요 없음
  • 핫플러그  -시스템 전원이 켜진 상태에서 장치 추가는 가능. 제거는 불가능
  • 핫스왑  -전원이 켜져있는 상태로 장치 교체 가능
  • 가상화  -단일 호스트에서 서로 다른 운영체제를 구동할 수 있게 하는 기능
  • 하이퍼바이저  -단일 호스트에서 다른 운영체제를 가상으로 구동 지원하는 플랫폼 (ex. VRWARE사의 VMWARE, 오라클사의 Virtualbox)
  • FAT 파일 시스템  -파일 할당 테이블(File Allocation Table). 운영체제를 운용하는데 디스크 공간을 할당
  • NTFS 파일 시스템  -Windows가 현재 사용중인 압축 파일 시스템. FAT 보다 디스크 공간 효율적 사용 가능.
  • ReFS 파일 시스템  -MS에서 NTFS를 대체하기 위해 개발

 

2) 유닉스 (UNIX)

- 멀티태스킹 기능, C언어

- IBM의 AIX, 오라클의 솔라리스, HP의 UX

- 구성

  • 커널 (Kernel)  -유닉스 운영체제의 핵심 구성요소. 운영체제를 구성하는 프로세서와 운영체제의 제어로 수행되는 프로그램에 대하여 자원할당을 수행하는 부분(OS 기본 기능수행 부분). 하드웨어 성능을 조정할 수 있도록 이어주는 서비스 제공
  • 쉘 (Shell)  -명령 번역기. 번역한 명령은 커널에 전달.
  • 유틸리티  -운영체제 외의 실행 가능한 프로그램

- 특징

  • 시분할 시스템
  • UFS 파일 시스템  -유닉스 파일 시스템(Unix File System). 유닉스 기반의 운영체제에서 쓰이는 디스크 기반 파일 시스템
  • 아이노드 (i-node)  -유닉스의 자료 구조 시스템
  • 소프트 링크 (심볼릭 링크)  - i-node를 이용하여 windows 바로가기 처럼 사용(지워도 원본은 남는)
  • 하드 링크  -소프트 링크와는 다르게 원본과 동기화된 바로가기 기능.

 

3) 리눅스 (Linux)

- 유닉스 호환 커널

- 자유 소프트웨어 정책 (금전적 무료가 아닌 원하는 대로의 실행, 무료나 유료로 복제물 재배포, 필요에 따른 개작 등 포괄적 자유 부여)

- 많은 개발자(전문가)들이 이용하기 때문에 코드 업데이트 빠름. 버그 발생시 빠른 업데이트 가능.

- 다양한 버전의 존재로 배포 정책, 배포 주기, 사상등이 각기 다름

- 서버시장, 슈퍼 컴퓨터 시장에 매우 높은 점유율

 

* 유닉스와 리눅스 차이

  유닉스(UNIX) 리눅스(Linux)
비용 대부분 유료 대부분 무료, 지원정책에 따라 일부 유료도 有
주 사용자 메인프레임, 워크스테이션 등 대형 시스템 관리자 개발자, 일반 사용자
개발사 IBM, HP 커뮤니티
개발 배포 대부분 사업자에 의해 오픈소스 개발
사용 인터넷 서버, 워크스테이션 등 대형 서비스 모바일폰, 태블릿 등 다양
사용자 편의 커맨드 기반이 주였지만, GUI도 제공하는 추세.
기본은 Bourne Shell, 현재는 많은 Shell과 호환가능.
GUI 제공, 파일 시스템 지원.
BASH Shell 제공.

 

4) 매킨토시 운영체제 (OS X)

- 유닉스 기반, 애플사 제품군에서만 사용 가능한 그래픽 기반 운영체제

 

 

 

S2. 운영체제 기본 명령어 활용

운영체제 제어

CLI (Command Line Interface)  -명령어 입력

GUI (Graphic USer Interface)  -마우스로 화면 클릭

 

Github  -분산 버전 관리툴인 Git을 사용하는 웹 호스팅 서비스

 

 

CLI 기본 명령어

1) Windows

- 명령어 입력 할때 Command 창 필요

=> 프로그램 및 파일 검색에서 "CMD" 입력  or  윈도우 보조 프로그램 중 명령 프롬프트 실행

 

2) Linux / UNIX 계열

- 명령어는 쉘(Shell)에 입력

*쉘(Shell) : 컴퓨터 내부를 관리하는 커널과 사용자 간을 연결하는 창

  • 세션별 변수 설정
  • 운영체제를 사용자가 원하는 상태로 설정
  • 사용자 요청에 기반한 명령열 작성
  • 백그라운드 처리, 서브 쉘 설정
  • 일련의 명령어를 묶어 처리하는 스크립트 기능 지원

3) Linux 디렉터리 구조

리눅스 디렉터리(/) = 윈도우의 폴더(₩, \)

- 최상위 디렉터리 (/)

- root는 최상위 디렉터리 아래의 root 계정의 홈 디렉터리

/
(최상위 디렉터리)
etc 시스템 환경 및 주요 설정 파일 보관
tmp 임시 파일 보관
lib 프로그램 모듈 보관
usr 사용자 활용 파일 보관
dev 물리적 장치 제어를 위한 파일 보관
home 각 사용자의 작업 디렉터리
boot 커널을 위한 프로그램 파일 보관
root 슈퍼유저 홈 디렉터리
sbin 슈퍼유저가 사용하는 명령어 저장 디렉터리
var 시스템 동작 중 변화하는 파일 저장

 

 CLI 명령어

기능 Windows / MS-DOS Linux
경로 변경 cd cd
목록 출력 dir ls
파일 복사 copy cp
구조 복사 xcopy cp
디렉터리 생성 mkdir mkdir
하위 파일 삭제 del rm
권한 설정 attrib chmod
화면 표시 type cat
목적지까지 경로 tracert traceroute
프로세스 종료   kill
실행 중 프로세스 표시 ps
디렉터리 경로 표시 pwd
네트워크 상태 점검 ping
접속해 있는 사용자 표시 who

 

 

GUI 기본 명령어

 

 

 

S3. 운영체제 핵심 기능 파악

운영체제 핵심 기능

1. 메모리 관리  :프로그램의 실행이 종료될 때까지 메모리를 가용한 상태로 유지 및 관리하는 것.

  • 메모리에 있는 프로그램은 중앙처리장치인 CPU로 이동하여 처리됨

2. 프로세스 관리

프로세스(Process)  :실행중인 프로그램 (=작업(Job), 태스크(Task))

 

프로세스 상태

  • 생성 (Create)  :사용자에 의해 프로세스가 생성된 상태
  • 준비 (Ready)  :프로세스가 준비 큐에서 실행 준비하고 있는 상태
  • 실행 (Running)  :준비 큐에 있는 프로세스가 CPU를 할당받아 실행
  • 대기 (Waiting)  :프로세스 수행중, 입/출력을 위해 대기상태로 전이
  • 종료 (Terminated)  :프로세스가 CPU를 할당받아 수행을 종료한 상태
  •  
  • 디스패치 (Dispatch Process)  :준비상태에서 실행상태로 바뀌는 것
  • 보류, 블락 (Block PRocess)  :프로세스 실행 중 시간이 다 되기도 전에 입출력 동작을 해야 할 경우 프로세스가 CPU를 반납하고 보류 상태로 들어가는 것
  • 깨움 (Wakeup Process)  :보류 상태 이후 다시 준비상태로 넘어가는 것
  • 시간제한 (Timeout Process)  :클락 인터럽트를 통해 프로세스가 일정 시간만 점유할 수 있게 하는 것

 

3. 프로세스 스케줄링

- 여러자원들 사이의 우선순위를 관리하는 작업

1) 선점형

  • RR (Round Robin)  -시간 순서대로 CPU 할당
  • SRT (Shortest Remaining Time)  -실행 시간이 가장 짧은 시간 우선적 처리
  • 다단계 큐  -프로세스를 그룹으로 분류해 그룹에 따라 각기 다른 준비 상태의 큐를 사용
  • 다단계 피드백 큐  -프로세스 큐들 간의 이동 허용

2) 비선점형

  • FIFO-FCFS  -선입선출
  • SJF (Shortest Job First)  -CPU점유시간이 가장 짧은 프로세스를 먼저 할당해 처리
  • HRN  - (대기시간+실행시간)/(실행시간)
  • 우선순위  -우선순위 가장 높은 프로세스부터 할당

 

가상화

- 물리적인 리소스들을 사용자에게 하나로 보이게 함  or  하나의 물리적인 리소스를 여러개로 보이게 함

- 서버의 가동률 60~70% 이상 올릴 수 있음 (대부분의 서버는 보통 용량의 20%임)

- 종류

  • 플랫폼 가상화  :하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 마치 독립된 환경을 만들어 낸 것처럼 보여주는 것
  • 리소스 가상화  :메모리, 저장장치, 네트워크 등을 결합하거나 나누는 것. 사용자는 가상화 된 물리적 장치들의 위치를 모르는 경우 多

 

클라우드

- 인터넷 기반에서 구동되는 컴퓨팅 기술

- 응용프로그램을 필요에 따라 불러 사용. 데이터를 손쉽게 저장 및 추출 가능

- 태블릿, 휴대폰 등 사용 디바이스 다양

- 종류

  • IaaS 인프라형 (Infrastructure as a Service)
  • PaaS 플랫폼형 (Platform as a Service)  -운영체제가 이미 구성되어 있는 상태에서 사용자가 데이터와 애플리케이션만 직접 관리 할 수 있는 서비스
  • SaaS 서비스형 (Software as a Service)  -인프라, 운영체제, SW까지 모두 갖춰져있음. 웹상의 로그인만으로 SW를 이용가능.