[정보처리산업기사] 응용 SW 기초 기술 활용
Updated:
운영체제의 개념 1
운영체제(OS; Operating System)의 정의
시스템 S/W(CPU관리 프로그램, 메모리 관리 프로그램, 관리적 요소 프로그램 ..) <-> 응용 S/W (게임,카톡 …)
-
운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용하는 환경 제공
- 자원을 관리한다.
- H/W : CPU(중앙처리장치=프로세서), 메모리, I/O(입출력 장치), 주변장치..
- S/W : System Software , 프로그램들 ..
- 프로세서 : 중앙처리장치 (CPU)
- 프로세스 : 실행중인 프로그램 ( 메모리에 올라간 프로그램들)
-
사용자의 편의성 제공
- Memory :
- ROM : 비휘발성 메모리(전원 차단 -> 날라가지않음, 초기)
- ROM-BIOS : 기본 입출력 시스템
- RAM : 휘발성 메모리(전원 차단 -> 날라감, 작업공간, 현재)
- bootstrapping Loader : 디스크(보조기억장치)에서 메모리(주기억장치)로 올리는 작업
- ROM : 비휘발성 메모리(전원 차단 -> 날라가지않음, 초기)
- Windows , UNIX, LINUX
- Windows : close
- UNIX, LINUX : open
- 병원에 비유
- 컴퓨터 -> 병원
- 프로세스 -> 환자
- 메모리 -> 병원의 크기
- CPU -> 의사
- OS => ?악덕병원장
- 단일 프로그램 : 1개의 cpu를 가지고 1개의 프로그램만 실행
- 다중 프로그램 : 1개의 cpu를 가지고 여러개의 프로그램을 실행
- 프로세스 스케쥴링 : 여러개의 프로그램을 실행하는 계획 성능 평가요소 : (처리량↑, 신뢰성↑, 반환시간↓, 가용도(사용 가능도)↑)
- 운영체제의 시스템의 성능 평가 척도
- (1) 처리량 ↑
- (2) 반환시간 ↓
- (3) 신뢰도 ↑
- (4) 이용가능도 ↑
- (5) 병목현상 ↓
운영체제의 기능분류 2 (2022-02-09)
- 제어프로그램(효율성↑)
- 감시 프로그램 : 핵심,증추,감독,지시
- 데이터관리 프로그램 : IOCS(Open Close, Read, Write, Block, deBlock)
- open, close : 보조기억장치 파일과 주기억장치의 파일의 논리적인 연결을 해줌
- Read, Write : 파일 저장, 파일 읽기
- Block, deBlock :
- 작업제어 프로그램 : 스케쥴 관리
- 처리프로그램(사용자편의성↑)
- 언어번역 프로그램 : 컴파일러, 인터프로그램
- 서비스 프로그램
- 문제처리 프로그램
다중 프로그래밍 방식에서의 시간(Time)
- 응답시간(Response time) : 작업이 처음 실행되기까지 걸린시간 = 반응시간
- 대기시간(Waiting time) : 실제 작업을 CPU가 실행하지 않은 시간들을 더한시간
- 실행시간(Running time) : 실제 CPU가 작업을 처리하는 시간
- 반환시간(Turn around time) : 실행시간 + 대기시간 (작업이 완료될 때까지 걸린시간)
- 시간 간극(Time Slice) : 프로세스가 자원을 사용하기 위해 운영체제에게 할당받은 시간 (=시간 할당량)
- 유휴 시간(Idle time) : CPU가 노는 시간
다중 시스템의 용어 정리
- 다중 프로그래밍(Multi Programming) :하나의 CPU로 구성된 시스템 에서 여러개의 프로그램을 처리하는 방식, 처리량을 최대로
- 다중 프로세싱(Multi Processing, 강결합 시스템, 메모리 공유, 병렬처리, OS 1개, 프로세스간 통신 : 공유메모리)
- 다중컴퓨터(Multi Computer, 약결함 시스템, 메모리 독립적, 분산처리, OS 여러개)
- 다중 태스킹(Multi Tasking) : =다중프로그래밍과 동일 (사용자 관점)
운영체제의 계층 구조
- 사용자
- 응용프로그램
- 유틸리티
- 명령어 해석기(Shell)
- 제어 프로그램(Kernel)
- 기계어
- 마이크로 프로그램
- 하드웨어
- 운영체제는 4~7단계
운영체제 관리 계층 위치
- 파일 관리 계층
- 주변장치 관리 계층
- 프로세스(Process) 관리 계층
- 기억장치 관리 계층
- 프로세서(CPU) 관리 계층
운영체제의 종류별 특징 (2022-02-13)
1. Unix의 특징
- 대부분 C언어(C 90%, 어셈블리언어 10%), 이식성이 우수
- Open Source
- Multi-User / Multi-Tasking
- 하나 이상의 작업을 백그라운드에서 수행
- 커널의 크기가 비교적 작아서 이식성이 뛰어남
2. Unix의 기본 구성
- 커널(Kernel)
- 핵심 루틴, 하드웨어 보호, 사용자 서비스
- 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리
- 쉘(Shell)
- 시스템과 사용자 간의 인터페이스 담당.
- 사용자의 명령어를 입력받아 시스템 기능을 수행하는 명령 해석기
- 사용자와 커널사이에서 중재자
- 유틸리티(Utility)
- 문서 편집기 , 데이터베이스 관리, 컴파일러, 네트워크
3. Unix 파일 시스템의 구조
- Boot 블록
- 부팅시 필요한 코드를 저장하는 블록
- 슈퍼 블록
- 전체 파일시스템에 정보를 저장함
- 실린더 그룹 정보 블록
- 사용 블록의 정보, 통계적 정보 기록
- I-node 블록
- 파일의 정보를 기록한, 파일 정보 테이블이 기록
-
데이터 블록
- (1) 목록구조
- Unix 명령어 $ls -l 을 입력하면 다음과 같은 목록 출력
-rwxr-xr-- 2 peter(소유자) staff(그룹) 3542(파일의 크기) 8월 31일 10:00 aaash(파일명)
-rwxrwxrwx
chmod 777 abc.txt
- (2) 복사와 링크의 차이점
- cp는 복사하는 명령어, ln은 파일이나 디렉토리를 링크거는것
- ln에는 hard link와 symbolic link(바로가기)가 있다
$ cp A.txt B.txt
$ ln C.txt D.txt
$ ln -s E.txt F.txt
1. Linux의 특징
- 리눅스는 워크스테이션이나 개인용컴퓨터에서 사용
- 핵심 커널부분은 유닉스와 다르게 작성되어있다
- 무료, 소스코드 무료 공개
- 임의의 프로세스 선점, 우선순의
- 모놀리틱 커널 사용
- NTFS, 저널링파일 시스템 IFFS 지원(리눅스 로그 구조 파일 시스템)
운영체제의 기본 명령어 (2022-02-13)
쉘(Shell)의 주요기능
쉘은 컴퓨터 내부를 관리하는 Kernel과 사용자 간을 연결하는 커맨드 창
UNIX 주요 명령어 - 프로세스 관련 명령어
- fork : 새로운 프로세스를 생성, 복제하는 기능
- exit : 프로세스 종료
- getpid : 프로세스명, 그룹명, 부프로세스의 정보를 얻음
- exec : 새로운 프로그램을 수행시키기위한 시스템 호출
- sleep n
- ps : 현재 실행중인 작업 프로세스를 출력
- who : 운영체제를 쓰고잇는 사용자 리스트
- & : 백그라운드
- | : 결과 값을 다음 명령으로 연결
- chmod : 권한설정
- grep : 특정 문자열을 찾음
- find : 특정 파일을 찾음
- fsck : 파일 시스템을 일관성 있게 검사, 대화식으로 복구 명령
- mkfs : 파일 시스템을 구성
- > : 앞의 명령 결과를 파일로 저장
- mount : 새로운 파일 시스템을 서브 디렉터리에 연결할때 사용
- ls : 현재 디렉토리 파일목록
- cat : 파일 내부 내용 보기
- cp : 복사 명령어
- ln : 링크 걸기
- mkdir(md) : 폴더 생성
- chdir(cd) : 디렉토리 이동
- rmdir : 디렉토리 제거
프로세스 (2022-02-14)
프로세스 : 실행중인 프로그램(메모리에 적재되어 CPU에 의해 실행과정에 있을때)
프로세서 = CPU
프로세스의 정의
- CPU에 의해 현재 실행되고 있는 프로그램
- PCB(Process Control Block)의 존재로서 명시되는 것
- 디스패치(준비상태 -> 실행상태)가 가능한 단위
- 비동기적 행위를 일으키는
- 실행 중인 프로시저의 제어 궤적
프로세스 상태 전이도
- (준비(Ready) , 실행(Run) , 대기(Block) )상태
- 준비 -> 실행 디스패치 (실행 -> 준비 가능)
- 실행 -> 대기 I/O 요구 (대기 -> 실행 불가능)
- 대기 -> 준비 wake-up (준비 -> 대기 불가능)
인터럽트 처리(Interrupt Processing) (2022-02-14)
인터럽트 정의
- 프로세스 수행중 다른 프로세스를 수행하기위해 현재 수행중인 프로세스를 중단하는 상태
- 인터럽트는 입출력 연산, 하드웨어 실패, 프로그램 오류 등에 의해 발생함.
인터럽트 처리를 위한 작업순서
- 인터럽트 발생 운영체제 제어권
- 운영체제는 현재 프로세스 상태를 저장
- 운영체제는 인터럽트의 발생 원인을 찾아 지정된 루틴으로 제어권을 넘겨줌
- 인터럽트 처리 루틴이 인터럽트 처리
- 인터럽트 걸렸던 이전 프로세스 상태로 복구
- 인터럽트 걸렸던 시점 이후부터 프로세스 실행
인터럽트의 종류
- SCV(SuperVisor Call) 인터럽트
- 프로세스 관리호출, 기억장치 할당 오퍼레이터와의 대화 시에 발생하는 인터럽트
- 입출력(I/O) 인터럽트
- 프린트나 디스크 저장시 입출력 채널확인, 준비, 할당, 완료 시
- 외부(Extern) 인터럽트
- 인터럽트 시계에 의해서 해당 프로세스가 종료된다. 이때 발생하는 인터럽트가 외부 인터럽트
- 재시작(Restart) 인터럽트
- 재부팅 하는경우(Ctrl + Alt + Del)
- 프로그램 검사 인터럽트
- 오버플로어(Overflow)나 언더플로어(Underflow)일 경우 분모가 0인 나눗셈을 처리하는 경우
- 기계 검사 인터럽트
- 컴퓨터 시스템의 고장으로 발생
인터럽트 특징
- 컴퓨터 시스템의 비상사태의 처리하는
- 메모리 보호 구역에 접근을 시도하는 경우 인터럽트 발생
- 예기치 않은 일들에 대해 중단없이 계속적으로 수행할 수 있도록 하는 기능
- CPU 상태를 보관
인터럽트 동기
- 동기 인터럽트(Synchronous Interrupt) : 하나의 명령어 종료후 인터럽트 발생
- 비동기 인터럽트(Asynchronous Interrupt) : CPU클릭 시그널과 상관없이 생성하는 인터럽트
(1) PCB(Process Control Block) 정의
PCB 테이블은 프로세스들의 현재 상태를 기록한 정보 테이블 각 프로세스들의 주기억장치에 적재된 기억장치 위치 혹은 포인터 항목으로 기록됨
(2) PCB 항목
- (1) 프로세스 식별자
- (2) 프로세스 현재 상태
- (3) 프로그램 카운터(계수기)
- (4) 프로세스 우선순위
- (5) 프로세스가 적재된 기억장치 부분을 가리키는 포인터
- (6) 프로세스에 할당된 자원을 가리키는 포인터
- (7) 중앙처리장치(CPU, 처리기) 레지스터 정보
- (8) CPU의 각종 레지스터 상태를 가리키는 포인터
- (9) 계정 정보(시간 할당량)
- (10) 기억장치 관리정보
- (11) 입출력 정보
- (12) 부모 프로세스를 가리키는 포인터
- (13) 자식 프로세스를 가리키는 포인터
시간할당량에 따른 문맥교환수, 인터럽트 횟수, 오버헤드
시간할당량이 ↓ : 문맥교환수 ↑, 인터럽트 횟수 ↑, 오버헤드(간접부담비용) ↑ 시간할당량이 ↑ : 문맥교환수 ↓, 인터럽트 횟수 ↓, 오버헤드 ↓
시간할당량 : 여러개의 프로세스가 CPU를 차지하는 시간간격
프로세스 스케쥴링(Process Scheduling) (2022-02-15)
프로세스 스케쥴링의 정의
- CPU나 자원을 효과적이며 생산성있게 사용하기 위한 소프트웨어적 계획
프로세스 스케쥴링의 종류
- 장기(상위) 스케쥴링 : Job Scheduling, Long Term
- 중기(중위) 스케쥴링 : 어떤 프로세스들이 CPU를 할당 받을것인지 결정
- 단기(하위) 스케쥴링 : Processing Scheduling, short Term
프로세스 스케쥴링의 원칙
- 모든 프로세스들에게 공정하게 배정
- 단위 시간당 최대의 처리
- 처리 응답시간이 신속
- 오버헤드를 최소화해야한다.
프로세스 스케쥴링의 성능 평가 기준
- CPU이용률 ↑
- 처리 능력 ↑
- 대기시간 ↓
- 응답시간 ↓
- 반환시간 ↓
비선점형 방식과 선점형 방식
- 비 선점형 : 빼앗을수없다. 중단시킬수 없다., 예측 용이
-
FIFO, SJF, HRN, 우선순위, 기한부
- FIFO(FCFS) : 입력된 순으로 처리, 평균 반환시간 = 평균 실행시간 + 평균 대기시간
- SJF(Short Job First) : 짧은 작업 먼저
- HRN(Highest Respons-ratio Next) : 대기시간 + 서비스시간 / 서비스시간
-
- 선점형 : 빼앗을수 있다. 중단시킬수 있다. , 예측 용이하지않다.
- RR, SRT, MFQ , MLQ
- (대화형, 시간분할에 적합)
- RR(Round-Robin , 시간분할) : 시간할당량이크면 FIFO와 동일
- SRT(Short Remaining Time) : 남아있는 짧은 작업먼저
- MFQ(Multi level Feedback Queue) : 짧은 작업우선, I/O 우선
- MLQ(Multi Level Queue) : 선점, 비선점의 방식
임계구역(Critical Section, 위협지구) (2022-02-16)
임계구역의 정의
다중 프로그래밍 기법에서 두 개 이상의 프로세스가 운영될 때 서로 공유하게 되는 자원(CPU, 메모리, 공유 변수, 프린터)를 말한다. 임계구역으로 프로세스간의 통신을 하는 매개변수 역할을 할 수도 있다.
임계구역의 원칙
- 두 개 이상의 프로세스가 동시에 사용할 수 없다.
- 순서를 지키면서 신속하게 사용한다.
- 하나의 프로세스가 독점하게 해서는 안된다.
상호배제 (Mutual Exclusion)
상호배제의 정의
임계구역을 어느 시점에서 단지 한 개의 프로세스만이 사용할 수 있도록하며, 다른 프로세스가 현재 사용중인 임계구역에 대하여 접근하려고 할 때 이를 금지하는 행위를 상호배제라고 함.
상호배제 알고리즘
- 잠금 : 말 그대로 잠궈버리는 것(하나의 파일을 쓰면 접근불가)
- 인터럽트 봉쇄 : 접근하려는 행위 자체를 막아버림
- 엄격한 교대 : 서로 교대로 한번씩만 접근
바쁜대기(Busy Wait)
- 잠금, 인터럽트 봉쇄, 엄격한 교대 등은 임계구역을 동시에 접근하지 못하게 할 수 있다. 하지만 임계구역을 접근하기 위해 다른프로세스는 계속적으로 접근 시도를 하게되는 바쁜 대기 현상이 나타난다.
잠자기와 깨우기(Sleep and Wakeup)
- 상호배제 과정에서 바쁜대기를 제거하기위한 기초 알고리즘이다.
세마포어(Semaphore)
- 상호배제의 원리를 보장하는 알고리즘이다.
- 임계구역에 대해 각각의 프로세스들의 접근을 제어하고 프로세스 사이의 동기를 유지
- 잠자기와 깨우기의 연산을 이용하며, 공유 자원의 수를 나타내는 변수를 세마포어 변수 S라고 한다.
-
세마포어 변수는 일반적으로 정수형 변수를 사용
- 이진형 세마포어 : 0과 1값, 한개의 공유자원을 상호배제
- 계수형 세마포어 : 0과 양의정수, 여러개의 공유자원을 상호배제
모니터(Monitor)
- 모니터는 세마포어를 실제 구현한 프로그램
- 모니터는 순차적으로만 사용할수 있는 공유자원 혹은 공유자원 그룹을 할당하는데 사용
모니터의 특징
- 정보 은폐
교착상태(DeadLock) (2022-02-16)
- 복수의 프로세스(Process)가 가능하지 못한 상태를 무한정 기다리고 있는 상태
교착상태 필요조건
- 상호배제
- 프로세스들은 필요로 하는 자원에 대해 베타적인 통제권을 갖음
- 비선점
- 프로세스가 소유하고 있는 자원은 다른 프로세스에 의해 선점될 수 없다(뺐을수 없다.)
- 점유와 대기
- 프로세스는 할당된 자원을 가진 상테에서 다른 자원을 기다린다.
- 환형대기 (교착상태에 대한 충분조건)
- 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 갖고 있다.
교착상태 해결방안
- 교착상태 예방(Prevention)
- 교착상태 회피(Avoidance)
- 교착상태 발견(Detection)
- 교착상태 회복(Recovery)
기억장치의 계층과 사용방식 (2022-02-16)
- CPU(레지스터)
- 캐시 기억장치
- 주기억장치
- 보조기억장치
기억장치 계층 간의 관련 기술
- 가상기억장치(Virtual Memory) : 보조기억장치인 하드디스 일부를 주기억장치럼 사용
- 가상 디스크(Virtual Disk) : 주 기억장치 일부를 보조기억장치인 하드디스크처럼 사용하는 기술
- 인터리빙(Interleaving) : 엑세스 속도를 빠르게 하기위해 주기억장치를 독립된 기억장치 모듈로 나눔
- 사이클 스틸링(Cycle Stealing) : CPU가 입출력 전용 프로세서인 채널(Channel)에게 주기억장치의 접근을 양보하여 입출력의 효율을 높이기 위한 방법
Leave a comment