운영체제
자원 분배
자원 관리
입출력 장치와 사용자 프로그램 제어
운영체제 계층 구조 순서
하드웨어 - CPU 관리 - 기억 장치 관리 - 주변 장치 관리
운영체제 성능 평가 척도
처리량 Throughput
작업량
반환시간 Turn around time
결과를 받을 때까지 경과 시간
신뢰도 Reliability
정확하게 해결
이용 가능도 Availability
얼마나 빨리 사용
병목 Bottleneck
처리량 최대 한계 도달 발생
UNIX
커널
프로세스 관리 기능, 입출력 관리 수행
하드웨어 보호, 사용자 서비스 제공
쉘
명령어 해석기
인터페이스 담당
여러 종류
I-node
파일에 대한 링크 수
파일 마지막으로 수정한 시간
파일 소유자의 사용자 식별
exec() : 새로운 프로세스 호출
getpid() : 프로세스명 등 정보 얻는다.
fork() : 새로운 프로세스 생성, 복제
new() : 객체 생성
ls : 파일 목록
cat : 파일에 내용을 화면에 출력
chmode : 파일 속성 변경
ls -l 수행 결과
-rwxr-xr— 2 peter staff 3542 8월 31일 10:00 aaash
처음 - : 일반 파일 타입
rwx : 소유권자 권한
r-x : 그룹 권한
r— : 다른 사용자 \ 전체
2 : 링크수
peter : 소유자 명
staff : 그룹 명
aaash : 파일 명
파일 사용 권한 변경 : chmod
프로세스
비동기적 행위를 일으키는 주체
프로세스 제어 블록 PCB를 가진 프로그램
PCB : 프로세스 구분하기 위한 프로세스 제어 블록
프로세스 현 상태
프로세스 우선순위
프로세스 고유한 식별자
디스패치 : 대기하고 있는 프로세스 중 하나가 실행 상태로 변하는 시점
스풀 spool : 입출력 장치와의 속도 차 극복 - 디스크의 일부
버퍼링 : CPU와 입출력 장치 속도 차이 - 메모리의 일부
문맥 교환 : 프로세스 변경하기 위해, 현재 프로세스 상태 정보 저장하고,
앞으로 실행될 프로세스 상태 정보 설정한 다음에 CPU 할당하여 실행되도록 하는 작업
프로세스 상태
Ready → Run / Running → Block | Exit
Ready → Run : 디스패치
Run - > Ready : 인터럽트
Run → Block : I/O 요구
프로세스 스케줄링 기법
비선점 스케줄링
FIFO, SJF, HRN ..
FIFO (First-in , First-out
SJF (Short Job First)
실행 시간 가장 작은 작업 먼저 실행
HRN
우선순위 큰 값부터
HRN 우선순위 = (대기시간 + 서비스 시간) / 서비스 시간
선점 스케줄링
RR, SRT, MFQ
SRT (Shortest, Remaining Time)
“남아있는” 실행 시간 가장 작은 프로세스 먼저
시분할 시스템에 유용하다.
임계치를 사용한다.
RR
시간 할당량 너무 커지면 FCFS 방식처럼 동작
혼합형 스케줄링
MLQ : 선점형 , 비선점형
우선순위 가장 높은 큐 : 비선점형
우선순위 낮은 큐 : 선점형
대기 리스트간 프로세스 이동 안된다.
에이징 기법
우선순위 낮은 프로세스가 무한대기 하는 상황 방지 기법
상호배제 Mutual Exclusion
임계구역을 어느 시점에서 단지 한 개의 프로세스만이 사용 할 수 있도록
임계구역 Critical Section
다중 프로그래밍 기법
두 개 이상의 프로세스가 운영될 떄 서로 공유하게 되는 자원
임계영역에서의 작업은 신속하게
특정 프로세스가 독점하면 안된다.
상호배제 요구 조건
어떤 프로세스도 임계구역에 진입하는 것이 무한정 연기되면 안된다.
임계구역 안에 있는 프로세스가 다른 프로세스의 임계구역 진입을 막을 수 있어야한다.
프로세스들의 상대적인 속도에 대해 어떠한 가정을 하면 안된다.
세마포어
임계구역 문제를 해결하기 위한 동기화 도구
이진 세마포어와 계수형 세마포어
표준 단위 연산 : P(Wait), V(Signal)
모니터
세마포어를 실제 구현한 프로그램
자원을 원하는 프로세스는 진입로를 호출
데이터 및 프로시저 포함하는 병행성 구조
외부의 프로세스는 모니터 내부 데이터 직접 엑세스할 수 없다.
원하는 모든 프로세스는 동시에 모니터 내에 들어갈 수 없다.
Wait, Signal 연산
교착 상태 DeadLock
복수의 프로세스가 가능하지 못한 상태를 무한정 기다리고 있는 상태
필요 충분 조건 4가지
상호배제 Mutual Exclusion
비선점 Non Preemption
환형 대기 Circular Wait
점유와 대기 Hold and Wait
해결 방안
예방, 회피, 발견, 회복
예방 Prevention
4가지 부정
회피 Avoidance
교착 상태 인정하고 피해가는 방법
은행원 알고리즘
불안전 상태 \ 안전 상태
대화식 적용 X
발견 Detection
이유 파악
회복 Recovery
희생양 정하는 일
단편화 Fragmentation
내부 단편화
이미 정해진 크기, 프로그램 할당
적재하고 남는 공간
외부 단편화
사용 가능한 분할 영역 있지만, 프로그램의 크기가 커서 사용하지 못하는 기억 공간
적재하지 못하고 남는 공간
기억 장치 계층 구조
CPU [레지스터]
캐시 기억 장치
주기억 장치
보조 기억 장치
주기억 장치 관리 전략
배치 전략
최초 적합 First Fit
첫 번째 공백에 배치
운영체제 다음부터가 시작점
최적 적합 Best Fit
가장 잘 맞는 공백 배치
최악 적합 Worst Fit
가장 큰 공백에 배치
교체 전략
LRU (Least Recently Used)
참조된지 가장 오래된 페이지 교체
LFU (Least Frequently Used)
참조된 횟수가 가장 적은 페이지 교체
가상 기억 장치 사용 방식
가상 기억 장치 관리 정책
요구 반입
새로 반입된 데이터나 프로그램 요구 시 적재
예상 반입
요구될 페이지를 미리 예측하여 적재
배치
주기억 장치 어느 곳에 위치
교체
어느 페이지를 새로운 페이지로 교체
배당
각 프로세스에게 몇 개의 페이지 프레임을 할당할 것인가
페이징 기법
페이지의 크기가 작으면 작을수록, 페이지 테이블 크기 증가
작을 수록, 내부 단편화 줄어든다.
클 수록, 입출력에 필요한 시간 최소화
클 수록, 참조 정보와 무관한 정보까지 이동하는 문제 발생
스레싱 Thrashing 방지
스레싱 : 지나치게 페이지 부재가 발생
Working set 방법 사용
Working set : 자주 참조하는 페이지들의 집합
세그먼테이션 기법
외부 단편화만 발생
각 세그먼트 크기는 다르다. 페이지의 크기는 같다.
세그먼트 테이블 프로세스의 크기에 상관없이 길이가 같다.
디스크 관리
디스크 스케줄링
FCFS
모든 작업에 대해 공평성 유지
SSTF (Shortest Seek Time First)
탐색 거리가 짧은 거리 부터
SCAN
SSTF 개선
진행 방향상의 가장 짧은 거리
C-SCAN
항상 바깥쪽에서 안쪽으로 거리가 짧은 거리 순
응답시간 편차가 가장 작다
RAID
RAID-0
스트라이핑 기법
RAID-1
미러링 기법
RAID-4
블록 단위, 별도의 패리티 디스크 사용
RAID-5
패리티 블록들을 여러 디스크에 분산 저장하는 방식
등선 속도 방식 : 밀도 같다
저장 용량의 손실이 없다.
분산 운영체제
다중 처리기 Multi-Processor
강결합 구조
메시지를 사용하여 상호 통신
여러 개의 CPU가 하나의 메모리를 공유
운영체제 하나
다중 컴퓨터
약결합
별도의 운영체제
여러 개의 CPU 독립적인 메모리 사용
주 프로세서, 종 프로세서
주 프로세서는 입출력과 연산, 운영체제
종 프로세서는 연산만
분산 처리 시스템
보안에 취약하다.
소프트웨어 설계가 매우 어렵다.
확장 용이, 연산 속도 향상, 자원과 데이터의 공유성
연결 구조
성Star형
중앙 노드 / 중앙 집중
계층 연결
부모 노드 거쳐야만 통신 가능
다중 접근 버스 연결 구조
한 노드의 고장이 다른 노드에 거의 영향을 주지 않는다.
스레드
경량 프로세스
한 개의 프로세스는 여러 개의 스레드 가질 수 있다. \ 병행성 증대
커널 스레드의 경우 운영체제에 의해 스레드 운용
사용자 스레드의 경우 사용자가 만든 라이브러리에 의해 스레드 운용
응용 프로그램의 처리율 향상
독립적인 스케줄링의 최소 단위
프로세스 내
프로세스 내에 스레드 간 통신 - 커널 개입 필요로 하지 않기 때문에 더 효율적
한 프로세스 내의 모든 스레드는 정적 영역 고유
다중 프로세스
각 프로세스는 각각 독립된 메모리 영역 할당(Code, Data, Stack, Heap)
다중 스레드
스택은 스레드마다 독립적으로 사용, 다른 스레드가 확인할 수 없다.
Stack만 따로 할당 (Code, Data, Heap) 공유
다중 프로그래밍 방식에서 시간
여러 개의 프로그램이 동시에 실행되는 것처럼
응답 시간 Response Time
작업이 처음 실행되기까지 걸린 시간 \ 반응 시간
대기 시간 Waiting Time
실제 작업을 CPU가 실행하지 않은 시간들을 더한 시간 \ 응답시간 포함
실행 시간 Running Time
CPU가 작업을 처리하는 시간
반환 시간 Turn around Time
실행 시간과 대기 시간 모두 더한 시간 \ 작업 완료될 때까지 걸린 시간
'소프트웨어공학 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 정보 통신의 기초 - 데이터 전송 제어 (0) | 2022.03.26 |
---|---|
[정보처리기사 필기] 정보 통신의 기초 - 정보 통신 (0) | 2022.03.26 |
[정보처리기사 필기] 프로그래밍 언어 활용 - 프로그램 개발 환경 구축과 명령어, 주소 지정 (0) | 2022.03.26 |
[정보처리기사 필기] 프로그래밍 언어 활용 - 객체지향 기술 (0) | 2022.03.26 |
[정보처리기사 필기] 프로그래밍 언어 활용 - 프로그래밍 언어 기초와 활용 (0) | 2022.03.26 |
댓글