운영체제
2장. 프로세스 관리(1), (어셈블러,링커,로더)
기상사건
2023. 4. 24. 18:50
728x90
1.시스템 프로그램의 종류
- 컴파일러와 인터프리터
- 어셈블리어와 어셈블러
- 매크로와 매크로프로세서
- 링커와 로더
- 운영체제
2. 링커와 로더
링커
- 여러 개로 나누어진 원시 모듈들은 어셈블러에 의해 별도로 어셈블되어 각각 다른 목적 모듈 들로 만들어져 , 보조 기억 장치에 저장된다. 이 모듈들을 실행 할 때에 연결해 주는 링커로 연결된다.
- 연결 기능만 수행하는 로더의 한 형태로, 링커에 의해 수행되는 작업을 링킹(Linking)이라고 한다.
로더
- 목적프로그램을 주기억장치에 적재해준다.
- 프로그램의 실행 준비
- 기억장소를 적게 점유함
- 절대적 적재와 재배치 적재
- 컴퓨터 내부로 정보를 들여오거나 로드 모듈을 디스크 등의 보조기억 장치로부터 주기억장치에 적재하는 시스템 소프트웨어이다.
로더의 기능
- 할당(Allocation): 실행 프로그램을 실행시키기 위해 기억장치 내에 옮겨놓을 공간을 확보하는 기능이다.
- 연결(Linking): 부 프로그램 호출 시 그 부 프로그램이 할당된 기억장소의 시작주소를 호출한 부분에 등록하여 연결하는 기능이다.
- 재배치(Relocation): 디스크 등의 보조기억장치에 저장된 프로그램이 사용하는 각 주소들을 할당된 기억장소의 실제 주소를 배치시키는 기능이다.
- 적재(Loading): 실행 프로그램을 할당된 기억공간에 실제로 옮기는 기능이다.
로더의 종류
- 컴파일 즉시 로더 (Compile-and-go loader)
1.링크:프로그래머 2.할당:프로그래머 3.재배치:어셈블러 4.적재:어셈블러 - 절대 로더 (absolute loader)
1.링크:프로그래머 2.할당:프로그래머 3.재배치:어셈블러 4.적재:로더 - 링커 및 재배치 로더(linker and relocate loader)
1.링크:링커 2.할당:운영체제 3.재배치:로더 4.적재:로더 - 링킹 로더(direct linking loader):링크 및 적재 과정을 한꺼번에 수행함
1.링크:링킹로더 2.할당:운영체제 3.재배치:링킹로더 4.적재:링킹로더 - 동적 로더(dynamic loader)
1.링크:동적로더 2.할당:운영체제 3.재배치:동적로더 4.적재:동적로더
3.프로세스 개념
작업
- 실행 프로그램과 이에 필요한 입력 데이터의 묶음이다.
- 컴퓨터에 실행 의뢰되기 전의 상태를 말한다.
프로세스
- 임의의 프로그램이 실행되기 위해서는 반드시 실행되기 전에 주기억장치에 저장되어야 한다.
- 커널에 등록된 작업
- 커널에 등록되어 커널의 관리하에 들어간 작업
- 운영체제에 의해 관리 된다.
프로세스의 정의
- 실행중인 프로그램(작업), PCB를 가진 프로그램 , 주기억장치에 저장된 프로그램을 말한다.
- 프로세서가 할당되는 실체 => PC(Program Counter)레지스터를 지닌 프로그램
- 커널에 등록되고 커널의 관리하에 있는 작업
- 운영체제가 관리하는 최소 실행 단위
- 지정된 결과를 얻기 위한 일련의 계통적 동작을 말한다.
- 프로세스 제어 블록을 할당받은 개체
프로세스 제어 블록
- PCB는 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 테이블로 task control block, job control block 이라고 한다.
- PCB 저장을 위한 공간은 시스템이 최대로 수용할 수 있는 프로세스의 수를 기본으로 하여 동적으로 할당한다.
- 각 프로세스가 생성될때 마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거가 된다.
PCB에 저장된 정보
- 프로세스의 현재 상태(실행, 준비완료, 대기 등..)
- 프로세스의 고유한 이름(Identifier)
- 프로세스의 우선순위 및 스케줄링
- 중앙처리장치의 각종 레지스터 상태를 저장하기 위한 공간
(프로그램 카운터 , 인덱스 레지스터 ,누산기 등등..) - 주기억장치 관리 정보
- 입출력 상태 정보
4. 프로세스 상태
프로세스 상태는 5가지이다.
- 제출(Submit)
작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태를 말한다. - 접수(hold)
제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태를 말한다. - 준비(ready)
1.프로세스가 프로세스를 할당받기 위해서 기다리고 있는 상태를 말한다.
2.프로세스는 준비상태 큐에서 실행을 준비하고 있다
3.접수 상태에서 준비 상태로의 전이는 job 스케줄러에 의해 수행됨 - 실행(Run)
1.준비상태 큐에 있는 프로세스가 프로세서를 할당받아서 실행되는 상태를 말한다.
2.프로세스 수행이 완료되기 전에 프로세스에게 주어진 프로세서 할당 시간이 종료되면 프로세스는 준비상태로 전이 된다.
3.실행중인 프로세스에 입/출력 처리가 필요하면 실행중인 프로세스는 대기 상태로 전이 된다. - 대기 , 보류, 블록(wait, block)
프로세스에 입/출력 처리가 필요하며 현재 실행중인 프로세스가 중단되고 입/출력 처리가 완료될때까지 대기하고 있는 상태를 말한다. - 종료
프로세서의 실행이 끝나고 프로세스 할당이 해제된 상태를 말한다.
5.프로세스 상태의 전이 정리
- 준비-> 실행
디스패치(Dispatch):준비 리스트 맨 앞에 있던 프로세스가 프로세서를 선택 하는것을 말한다. - 시간 할당
실행한 프로세스가 프로세서를 일정 시간만 사용할 수 있도록 시간을 제한하고 특정 프로세스가 프로세서를 계속해서 독점하는 것을 방지한다.
- 실행-> 준비
1.프로세스가 프로세서를 점유한 상태를 " 프로세스가 실행 상태에 있다." 라고 한다.
2.운영체제는 프로세스의 독점을 방지하기 위해서 인터럽트 클록(Interrupt Clock)을 둔다.
3.운영체제가 제어권을 가지면 실행 중인 프로세스는 준비 상태로 변화, 준비 리스트의 첫 프로세스가 실행 상태로 변경된다. - 대기(보류)-> 준비
깨움(Wake up): 프로세스의 마지막 상태 변화로 입출력 작업이 끝났을 때 발생한다.
728x90