티스토리 뷰

2: 운영체제 소개===============================

- 운영체제란 ?

편리하고 효율적으로 하드웨어를 사용자가 이용할 수 있도록 시스템의 운영을 돕는 역할을 한다.

- 컴퓨터 시스템 = 사용자 + 소프트웨어 + 하드웨어

- 운영체제의 기능

1. 자원의 효율적 운영을 위한 스케쥴링

2. 사용자와 컴퓨터간 시스템 인터페이스

3. 각종 자원의 제어, 관리, 할당

4. 오류 검사 및 복구

5. 보안 관리 및 자원 보호

6. 통신 및 네트워크 관리

7. 사용자간의 자원 공유

- 운영체제의 구성

1. 커널

- OS의 핵심부분, 메모리에 상주

- H/W자원의 제어, 관리 및 입출력

- 제어 프로그램이라고도 함.

2. 서비스프로그램

- 유틸리티, 사용자 인터페이스 기능

- 처리프로그램, 비상주 프로그램들.

(cpu,기억장치,주변장치,프로세스,파일시스템을 관리한다.)

- 운영체제의 분류

1. 일괄처리시스템

- 다량의 작업을 모아서 한꺼번에 일괄 처리.

(상주모니터,오프라인연산,버퍼링,스풀링)

2. 시분할 시스템

- 여러사람이 공동으로 cpu사용, 통신, 고성능필수

3. 다중 프로그래밍 시스템

- 하나의 cpu에 여러 프로그램을 실행

4. 다중처리 시스템

- 한시스템에 2개이상의 cpu, 서버용, 강결합

5. 실시간 시스템

- 데이터 발생, 처리요구시 즉시 처리(은행)

6. 다중모드 시스템

- 일괄처리,시분할,다중처리,실시간을 모두 제공

7. 분산처리 시스템

- 약결합시스템, 서버용OS에서 지원

- 분산된 여러대의 컴퓨터에 수행기능 분담.

- 네트워크를 이용한 상호간 교신,처리

OS의 구조

단순구조

작고간단,시스템기능이 제한적 높은성능

계층구조

모듈화/오류수정용이/설계구현이 단순

윈도우 구조

커널이 운영체제의 기본기능만을 제공

리눅스/유닉스 구조

윈도우대비 단순, 셀개념

마이크로 커널 구조

커널이가볍고 실시간 시스템에 활용, 기능변경이 쉬움


3: 프로세스와 스레드============================

- 프로세스의 개념

현재 실행중인 상태의 프로그램, 살아있는 프로그램.

고유번호인 PID를 갖고 주기억장치에 위치한다.

메모리에 주소공간을 갖는 능동적 개체.

- 프로세스의 구성

텍스트영역/데이터영역/스택영역

- 프로세스의 종류

1. 운영체제 프로세스(커널or시스템프로세스)

2. 사용자 프로세스(사용자 코드 수행)

3. 병행 프로세스

- 독립프로세스 : 타 프로세스에 영향x 독립적

- 협동프로세스 : 상호작용,통신을위한 수단, 동기화 필요

- 프로세스의 상태

1. 실행 상태 프로세스

- 실행/대기or보류/준비(한순간에 한프로세스만 실행됨)

2. 비실행 상태 프로세스

- 프로세스의 상태

1. 준비 큐(Queue)에서 실행준비상태로 대기.

cpu에서 처리->완료or다시준비큐에 대기 -> 입출력큐에 대기

- 프로세스의 기본 상태

1. 준비상태 : cpu를 할당 받을 수 있는 상태 준비큐에서 처리를 기다림

2. 실행상태 : 실행/처리되고있는 상태

3. 대기상태 : wait이벤트 발생시 cpu양도, 입출력큐에대기

4. 완료상태 : 수행종료

- 프로세스 제어 블록(PCB)

프로세스에 대한 정보가 저장된 자료 구조 테이블

프로세스를 관리하기 위해 사용, 각하나의 PCB를 가짐.

프로세스 생성시 만들어지고, 실행완료시 삭제됨.

식별번호/상태/우선순위/HW상태/cpu사용,대기시간

기억장소관리정보/입출력상태정보/자원의 포인터/부모자식프로세스 번호

- 문맥교환

@운영체제는 문맥교환시간을 최소화해야함.

실행중 프로세스를 종료, PCB에 저장하고 타프로세스를 실행,

- 인터럽트

외부의 이벤트에 의한 발생(입출력인터럽트/클록인터럽트)

- 트랩

부적절한 파일 접근 또는 실행중 프로세스의 오류/예외로 인한 발생

- 스레드

경량프로세스/프로세스의 내부의 실행 작업단위

멀티스레드 = 하나의 프로세스, 다수의 스레드

실행환경의 공유,문맥교환과 같은 오버헤드 감소.

기억장소 낭비 감소, 어렵고 복잡한 프로그래밍.

사용자수준스레드/커널수준스레드/혼합형스레드



4: 병행 프로세스와 상호배제======================

- 병행 프로세스의 개념

서로연관성을 가지고 협동, 경쟁하는 두 개이상의 프로세스

경쟁조건을 피하기위해 프로세스 동기화가 필요함

- 동기화 유형

일반 동기화 : 생산자/소비자관계의 동기화

생산,소비와 같이 미리 정해진 순서로 협동적 처리 방식

특수 동기화 : 경쟁적 상호 배제

 

- 상호 배제

하나의 프로세스 이외 모든 프로세스들이 공유변수를 접근 못하게 제어, 뮤텍스라고도 함

 

- 임계 영역

프로세스 중에서 공유자원에 접근하는 코드 영역

수정 가능한 공유 데이터에 접근, 한번에 한 스레드만 접근.

- 소프트웨어적 임계영역 문제해결

데커의 알고리즘(선호스레드개념사용)

페터슨의 알고리즘(바쁜대기,데코대비 간단, 선호스레드사용)

- 하드웨어적 임계영역 문제 해결

특별한 하드웨어 명렁을 사용, 임계영역 문제를 해결

testandest를 이용한 상호배제 알고리즘

 

- 진입 상호 배제

프로세스 하나가 임계영역에 있으면 다른 프로세스가 임계영역에 들어가지 못하게 하는 것

- 상호배제 알고리즘의 문제점

Busy-Waiting 발생, cpu시간 낭비 초래.

-->> 세마포어 알고리즘을 통한 최소화.

 

- 세마포어

공유변수 SP연산, V연산을 이용한 알고리즘

Binary Semaphore 한 자원에 1개만 접근허용

Counting Semaphore = 다수의 자원에 다수 접근 허용

@세마포어S는 정수값을 갖는 변수, 초기화 및 두 개의 연산으로만 접근 가능한 특수 변수

S연산 첫째프로세스가 S0으로, 임계영역접근. 1이될때까지 다음 프로세스는 대기

V연산 공유자원을 다 쓰면 S1로 바꾼다.

- 세마포어의 문제점

불공정 수행이 동반될 수 있음.

- 모니터

프로그래밍언어에서 지원, 프로그램 라이브러리 형태

제어가 용이, 자료의 추상화, 정보은닉 기법을 도입.

모든 프로세스는 모니터를 통한 공유자원 이용가능



5: 교착상태와 기아상태==========================

- 교착상태

대기 중인 프로세스 중 한 프로세스에 의해서만 발생할 수 있는 사건을 둘 이상의 프로세스가 무한히 대기할 때 발생.

- 발생의 예

파일 요청시 / 전용장치할당시 / 스풀링 시스템 사용 시

- 발생의 조건

상호배제 / 점유와 대기 / 비선점 / 순환대기

- 해결방안

예방 / 회피 / 회복

교착 상태 무시 : 희박한 사건으로 간주, 무시

교착 상태 예방 : 교착상태발생의 4가지 조건 중 하나를 허용하지 않음

교착 상태 회피 : 교착 상태 발생시키는 자원의 요청 회피

교착 상태 탐지 : 항상 자원요청을 인정/ 주기적탐지,회복

- 교착상태 회피의 예 : 은행가 알고리즘

다익스트라의 은행가 알고리즘

-->각 프로세스가 요청하는 자원의 종류 최대수를 알아야함

 

- 기아상태

프로세스가 오랜기간 자신의 작업을 완료하지 못하는 상태

- 교착상태를 예방하기 위한 자원을 할당할 때 발생

-> 에이징 기법 이용.

- 에이징 기법

대기시간이 오래된 프로세스에 최우선적으로 자원을 할당하는 방법.

오래된 프로그램이 있다면 그 프로그램에 필요한 자원만을 할당



6: 프로세서 스케쥴링=============================

- 스케쥴링의 개념

주어진 시간에 시스템이 실행할 프로세스를 선택하는 작업

- 스케쥴러 : 언제 어ᄄᅠᆫ 프로세스에게 cpu를 할당할지 결정

- 스케줄링 알고리즘 : 효율적 프로세스 처리를 위한 방법

공정한스케줄링/처리량극대화/우선순위에 따른 처리

응답시간,작업반환시간최소화/균형있는 자원사용/ 무한대기금지

- 스케줄링 단계

1단계 : 작업 스케줄링 승인 스케줄링

2단계 : 작업승인과 프로세서 할당(사용권한)

3단계 : 프로세서 스케줄링(디스패칭)

- 스케줄링 알고리즘의 종류

1. 선입선처리 기법

2. 초소작업 우선기법

3. SRTN 기법

4. 우선순위 스케줄링 기법

5. 순환 할당 기법

6. 다단계큐 스케줄링 기법

7. 다단계 피드백 큐 스케줄링 기법 /8. HRN 기법 / 9. SRT기법

10. 기한부 스케줄링 기법/11. 다중 프로세서 스케줄링

종류

방법

특징

 

FIFO

들어온 순서대로 처리

일괄처리에 적합

간단하고 구현 용이

비선점

RR

cpu에 일정한 시간을 부여

대화형/시분할 방식

선점

SJF

수행시간이 적은작업 우선처리

작은작업에 유리

비선점

SRT

잔여수행시간이 적은 작업을 우선

SJF의 선점형 버전

선점

HRN

응답률이 높은 프로세스 먼저 처리

공평함

비선점

우선순위

프로세스 우선순위가 높은 순서대로 처리

일괄처리시스템에서 주로사용

비선점

기한부

주어진 시간내 작업종료 여부 처리 방법

실시간 시스템에 적합

비선점

MLQ

다수의 큐에서 서로 다른 방식으로 프로세스 처리

프로세스 유형에 따라 준비 큐가 고정

선점

MFQ

하나의 프로세스에 대해서 여러개의 피드백 큐를 걸쳐 일을 처리

대화형 프로세스에 적합

선점

- 알고리즘 선택기준

측정한 시스템의 내용의 상대적 중요성을 정의하는 것이 필요



7: 메모리 관리==================================

- 메모리 관리

다중 프로그래밍 시스템에서 운영체제에 의해 동적으로 메모리의 사용자 영역을 여러프로세스가 상주 할수 있도록 세분화 하는 과정

- 메모리 관리 정책

주기억장치(RAM)을 효율적으로 관리하기 위한 기법

반입정책/배치정책/교체정책

- 반입정책

프로그램 혹은 데이터를 언제 주 기억장치로 가져 올 것인가.

요구반입기법/예상반입기법

- 배치정책

새로 반입된 데이터나 프로그램을 주기억장치의 어디에 위치시킬것인가를 결정하는 정책(최초적합/최적적합/최악적합)

- 교체정책

새로 들어온 프로그램이 들어갈 장소를 마련하기 위해서 어떤 프로그램이나 데이터를 교체할 것인가를 결정하는 정책

- 메모리의 공간 구분

1. 물리적 공간(물리적 주소)

실제 데이터나 프로그램이 저장되는 공간

메모리 칩 또는 디스크 공간으로 생성 사용되는 단위는 BYTE

2. 논리적 공간(논리적 주소)

프로그래머가 프로그래밍에 사용하는 공간

목적코드가 저장된 공간과 프로그램에서 사용하는 자료 구조등이 해당

- 메모리 매핑

논리적 주소와 물리적 주소의 연결/MMU하드웨어에서 실행

메모리 관리 방식에 따라 여러방식으로 구분됨

(고정분할/동적분할/페이징/세그먼트/페이지화된 세그먼트)

- 주소바인딩

논리적 주소를 물리적 주소로 변환하는 과정

- 동적 적재

배치 가능한 형태로 모든 메모리를 적재하지않고 디스크에 저장

- 중첩(프로세스의 크기가 실제 메모리 크기로 제한되는 문제점을 해결)

중첩영역에는 필요한 시기에 해당 프로그램을 불러 들여 저장.

- 프로세스 교체

Roll-In/Roll-out을 통한 높은 우선순위프로세스와 스왑.

- 단일 사용자 연속 메모리 할당

연속할당방식/단편화의발생이잦음/단순하고 구현이 용이

- 고정분할 다중프로그래밍

연속할당방식/MFT메모리할당방법/내부단편화발생

- 가변분할 다중프로그래밍

가장 합리적인 분할의 크기를 결정하여 각 작업에 할당

1. 최초적합기법 : 첫 번째 공백 분할 공간에 할당

2. 최적적합기법 : 가장 작은 크기의 사용공간에 할당

3. 최악적합기법 : 가장 큰 사용공간에 할당

- 세그먼트 메모리 관리기법

크기가 가변적이고 기억장치 어느곳에도 자리할수 있음.

- 페이지화된 세그먼트 메모리 할당

메모리의 효율적 사용/페이징과 세그먼테이션의 결합구조

외부단편화문제를 제거, 할당과정을 쉽게 해결



8: 가상 메모리==================================

- 가상 메모리

큰 논리 주소 공간을 작은 실제 메모리로 사상하는 기법

작업의 크기가 메인 메모리의 사용가능 공간의 제약이 없음.

메모리의 효율적 이용 가능, 다중 프로그래밍의 정도를 증가.

- 가상 메모리의 관리 기법

세그먼트기법과 페이징 기법의 혼합으로 외부/내부단편화 제거 및 최소화

소프트웨어의 복잡도가 커짐.

- 요구 페이징

가장 일반적인 가상 메모리 체계로 스왑 기법을 사용하는 페이징 시스템과 비슷함.

프로그램을 실행하기 위해 프로그램의 일부만을 메인 메모리에 적재

- 페이지 테이블

변화를 반영하기 위해 갱신되고 페이지 부재를 일으킨 명령을 다시 시작함.

- 선입선출 대치 알고리즘(FIFO)

가장 간단한 페이지 대치 알고리즘이며 메모리 안으로 들어간 시간이 가장 오래된 페이지부터 대치

- 최적 페이지 대치 알고리즘

페이지 부재율이 가장 낮으며 가장 오랜 기간동안 사용되지 않을 페이지를 대치

- 최근 최소 사용 알고리즘

가장 최근의 과거를 사용하여 오랜기간 동안 사용되지 않은 페이지를 대치

- 스레싱

페이지 교환이 계속 일어나는 현상(충분한 기억장치를 가지지 않을 때)

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함