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를 이용가능.
'시험' 카테고리의 다른 글
| #실기 P1. ch2 프로그래밍 언어 활용 (0) | 2023.03.13 |
|---|---|
| #실기 P3 응용 SW 기초 기술 활용 - DB (데이터베이스) (0) | 2023.03.08 |
| #실기 P3 응용 SW 기초 기술 활용 - 네트워크 (0) | 2023.03.07 |
| #실기 P2 애플리케이션 테스트 수행 (0) | 2023.02.28 |