Open WonYong-Jang opened 6 years ago
프로세스의 고유번호(PIN ; Process Identification Number) ==> 커널이 프로세스 관리하는데 있어서 편리성을 위하여 프로세스마다 다르게 부여되는 번호 / 프로세스 생성될때 부여 됨 CPU 스케줄링 정보 : 프로세스의 우선순위 ( ex) 다른 프로세스와 경쟁 했을때 우선순위 ), cpu 점유시간 등 프로세스 현재 상태(생성, 준비, 실행, 대기, 완료) 프로세스가 할당받은 자원 정보
장점
장점
단점
사용 이유 :
단점
너무 많이 만들어 놓았다면 메모리 낭비만 발생 할수 있다.
-- code stack heap 안에 뭐가 있는지
운영체제 개요
정의
목적
1) 사용자에게 편리한 환경 제공 2) 시스템의 성능 향상
역할
프로그램 빌드 되는 과정 (링커와 로더)
링커 : 컴파일러가 프로그래밍 언어를 해석해서 기계어로 바꾸는 것이라면 링커는 컴파일러가 만든 결과물을 서로 연결시키는 역할을 함
로더 : 컴퓨터 운영체제의 일부분으로, 하드디스크와 같은 저장 장치에 있는 특정 프로그램을 찾아서 주기억장치에 적재하고, 그 프로그램이 실행되도록 하는 역할을 담당
로더의 기능 1) 할당(Allocation) - 목적프로그램이 적재될 주기억 장소 내에 공간을 확보 2) 연결(Linking) - 필요할 경우 여러 목적 프로그램 또는 라이브러리 루틴과 링크작업, 외부기호를 참조할 때 이 주소값들을 연결 3) 재배치(Relocation) - 목적 프로그램을 실제 주기억 장소에 맞추어 재배치, 상대주소를 절대 주소로 변경 4) 적재(Loading) - 실제 프로그램과 데이터를 주기억 장소에 적재
운영체제의 유형별 특징
일괄처리시스템(Batch Processing System)
다중프로그래밍 시스템(Multi-Programming System) : CPU 1개
시분할 시스템(Time Sharing System)
분산 처리 시스템
다중 처리 시스템 : CPU N개
여러개의 프로세서(CPU)를 이용해 신뢰성, 가용성, 컴퓨터 능력 증가등의 목적을 달성
비대칭 주 / 종 다중처리 시스템 : 마스터 프로세서가 주가 되어 관리, 마스터 프로세서는 연산과 입출력 관리를 하며, 슬레이브 프로세서는 연산만 가능 ==> 형태가 단순하지만 마스터 프로세서에 부하가 많아 신뢰도, 자원 사용에는 비효율적
대칭 다중 처리 시스템 : 모든 프로세서 동일 ==> 신뢰성이 높고 자원을 효율적으로 사용할수 있는 방식
프로세스와 스레드
프로세스 정의
실행 중인 프로그램 ( 주기억장치 ,CPU에서 실행 하는 단위 / 동적인 개념 )
비동기적(Asynchronous) 행위 ==> 어떤 작업을 요청했을 때 그 작업이 종료될 때까지 기다리지 않고 다른 작업을 하고 있다가, 요청했던 작업이 종료되면 그에 대한 추가 작업을 수행하는 방식!
디스크에 저장되어 있던 실행 가능한 프로그램이 메모리에 적재되어 운영체제의 제어를 받는 상태이다.
운영체제에 존재하는 PCB(Process Control Block : 프로세스 제어 블록) 할당 받는 개체
프로세스 1개당 PCB 1개 존재 PCB(프로세스 제어블록) : 특정 프로세스에 대한 중요한 정보를 제공해 주는 데이터 블록 ==> 프로세스를 생성 할때 만들어지며 주기억장치에 유지되며 운영체제 내에서 한 프로세스의 존재를 정의함, 프로세스의 실행이 종료되면 같이 삭제된다. 1) 프로세스의 고유번호(PIN ; Process Identification Number) ==> 커널이 프로세스 관리하는데 있어서 편리성을 위하여 프로세스마다 다르게 부여되는 번호 / 프로세스 생성될때 부여 됨 2) 프로세스의 우선순위 ( ex) 다른 프로세스와 경쟁 했을때 우선순위 ) 3) 프로세스 현재 상태(생성, 준비, 실행, 대기, 완료) 4) 프로세스가 할당받은 자원 정보
인터럽트 : 컴퓨터 시스템에서 발생하는 예외적인 사건을 신속히 처리하기 위한 기법으로, 인터럽트가 발생하면 해당 인터럽트 처리 루틴을 먼저 수행한 후 원래의 프로그램으로 되돌아 온다.
문맥교환( Context Switching )
스레드 ( Thread )
스케줄링 ( Scheduling )
스케줄링 하는 이유
프로세스 스케줄링 종류
비선점 ( non-preemptive )
- 현재 실행중인 프로세스가 끝나야 다음 프로세스 CPU 를 할당
1) FCFS 스케줄링
2) SJF 스케줄링( Shortest Job First )
3) HRN 스케줄링
선점 ( preemptive )
- 현재 실행중인 프로세스보다 높은 우선순위를 가진 프로세스가 등장하면 스케줄러에 의해 실행 순서 조절
1) SRT 스케줄링 ( Shortest Remaining Time First )
2) Round Robin
3) 다단계 큐 알고리즘
4) 다단계 피드백 큐 알고리즘
병행 프로세스와 교착상태
임계구역 ( Critical Section )
다중 프로그래밍 운영체제에서 여러 개의 프로세스가 공유하는 데이터 및 자원에 대하여 어느 한 시점에서는 하나의 프로세스만 자원 또는 데이터를 사용하도록 지정된 공유 자원을 의미
상호배제 ( Mutual Exclusion ) 와 동기화
세마포어 ( Semaphore )
모니터 ( Monitor)
교착상태(Deadlock)
Deadlock 발생 조건 : 한 시스템 내에서 다음의 네가지 조건이 동시에 성립할 때 발생
1) 상호 배제 : 자원은 한번에 한 프로세스만 사용 할수 있다. 2) 점유 대기 : 적어도 하나의 자원을 보유하고 현재 다른 프로세스에 할당된 자원을 얻기 위해 기다리는 프로세스가 있어야한다. 3) 비선점 : 자원을 강제로 빼앗을 수 없고 그 자원을 점유하고 있는 프로세스가 끝나야 그 자원이 해제 될수 있다. 4) 순환대기 : 프로세스와 자원들이 원형을 이루며, 각 프로세스는 자신에게 할당된 자원을 가지면서, 상대 방 프로세스의 자원을 상호 요청하는 상황
교착상태 처리 기법
1) 교착상태 예방(Prevention) : 교착상태 발생 조건 들 중 하나를 제거함으로써 해결 / 자원 낭비가 심함!
상호배제 부정 : 여러개의 프로세스가 공유 자원을 사용할수 있도록 ///3개 아닌가? 확인할것 => 제외해야 되는지 확인 !
점유와 대기조건 방지 : 프로세스가 실행되기 전 필요한 모든 자원을 할당
비선점 조건의 방지 : 자원을 점유하고 있는 프로세스가 다른 자원을 요구할때 점유하고 있는 자원을 반납하고, 요구한 자원을 사용하기 위해 기다리게 함
순환 대기 조건의 방지 : 자원에 고유한 번호를 할당하고, 번호 순서대로 자원을 요구하도록 함
2) 교착상태 회피( Avoidance ) : 교착 상태가 발생하면 피해나가는 방법 / 은행원 알고리즘
프로세스가 자원을 요구할때 시스템은 자원을 할당한 후에도 안정 상태로 남아있게 되는지를 사전에 검사하여 교착 상태를 회피하는 기법
안전상태에 있으면 자원을 할당하고, 그렇지 않으면 다른 프로세스들이 자원을 해지할때 까지 대기함
3) 교착 상태 탐지 ( Detection ) : 자원 할당 그래프를 통해 교착 상태 탐지
4) 교착 상태로부터 회복 ( Recovery ) : 교착 상태를 일으킨 프로세스를 종료하거나, 할당된 자원을 해제함으로써 회복하는 것을 의미 / 프로세스 종료하는 방법