운영체제 (OS)

[04] Process Manager

yongyongMom 2023. 4. 21. 02:38
SMALL

+++ :  좀 더 공부해보자

 

1. Process Manager

-- OS 가 관리하는 많은 활동

: system program : 시스템 자원을 효율적을 관리하고 다른 프로그램들의 작동을 지원하는 역할 

: ex) printer spooler  : 여러프로그램에서 출력 명령을 내릴 경우 큐에 저장 후 차례대로 처리 -> 사용자는 출력 완료를 기다리지 않고 다른 일을 할 수 있음

: ex) Name server : 호스트 이름을 IP 주소로 변환하고 IP 주소를 호스트 이름으로 변환 -> host 이름으로 네트워크 자원 찾을 수 있음

: ex) File server : 파일을 관리하고 클라이언트 컴퓨터에 파일 서비스 제공, 클라이언트는 이를 통해 엑세스 가능

 

-- process 내에 캡슐화되어 있음

: process : 프로세스가 실행되는 동안 사용하는 모든 리소스인 excute context 를 모두 포함

: 예를 들어 code, data, PC( Process Counter ), register 등

: process 는 program 이 아님

: process 는 실행 중인 프로그램의 한 인스턴스로 많은 프로세스가 하나의 프로그램을 실행할 수 있음 +++

 

-- OS는 프로세스를 create, delete, suspend ( like block ), resume 그리고 schedule 해야 함

-- OS는 프로세스 간 통신 및 동기화를 지원하고 deadlock 상태를 처리해야 함

: deadlock : 프로세스들(or threads )이 서로가 가진 자원을 기다리며 무한정 대기하는 상황

: 다중 프로세스 환경에서 한정된 자원을 경쟁적으로 사용할 때 발생

: process1 이 a1을 가지고 있어 소유를 선언하고 process2 가 갖고 있는 a2를 원하면 deadlock 발생 ( 이 상황에서는 process2 또한 a2 에 대한 소유를 선언한 상태 ) 


2. Memory Manager

-- OS의 일부

-- 메인 메모리

: CPU 에 대한 직접 엑세스 storage 제공

: 하드디스크나 SSD 에 대한 엑세스 가능 

: 프로세스는 메인 메모리 ( RAM ) 공간에서만 실행됨

-- 프로세스가 필요로 하는 메모리 공간을 할당 & 관리

-- 프로세스이 메모리 사용량이 변동되는 경우 -> 프로세스의 메모지 재할당 혹은 해제

-- 메모리 보호 기능 제공 

: 하나의 프로세삭 다른 프로세스의 메모리에 접근하는 것을 방지하여 안전하게 보호

-- OS must - mechnics 기술적인 측면

: 1. 현재 메모리 공간에서 사용 중인 영역을 추적하고 관리하는 것 의미

: 2. 사용하지 않는 free 메모리 추적하고 관리

: 3. 위의 메모리 보호 기능 제공

: 4. 적절한 메모리 영역을 프로세스에 할당해주고 해제해 줌

: 5. swap process : disk <-> memory ( 상황에 따라, 메모리 상태에 따라 프로세스 이동이 가능 ) 

 

-- OS must - policies 정책적인 측면

: 언제 프로세스를 메모리로 load 할지 정하는 것

: 각각의 프로세스에 어느 정도의 메모리를 할당할 것인가

: 언제 프로세스가 메모리에서 제거, 해제 되어야 하는가 


3. File System Manager 

-- 파일 및 디렉터리의 생성, 삭제, 수정, 검색, 복사 등과 같은 파일 관리 작업을 처리

-- 디스크 : 용량이 크고 오랜 기간 저장 가능 but 직접적인 사용은 어려운 저장장치

++ 블록이라는 고정된 크기의 단위로 데이터를 저장, 선형적으로 배열되어 데이터 저장

-- 파일을 디스크의 블록 단위로 저장하며 파일 이름과 블록의 위치를 매핑

-- 파일의 보안, 권한, 백업 등과 같은 추가적인 기능도 제공

-- 파일 시스템은 파일 및 기타 디렉토리를 포함하는 디렉토리를 지원 - 하위 디렉토리에 대한 이름, 크기, 생성 일자 등등 정보를 가짐

 

-- OS must 

: 파일과 디렉토리들은 create, delete 할 수 있어야 함

: 파일 & 디렉토리 조작 가능 ( read, write, extend, rename, copy, protect )

: 백업, 사용자가 사용한 디스크 공간 및 리소스 사용량 추적, 각 사용자 또는 응용 프로그램이 사용할 수 있는 최대 디스크 공간 양을 제한

 

4. Disk Management

-- 실제 하드웨어는 파일 시스템 아래에 있음 

: 하드웨어,  디스크의 블록에 파일을 할당하는 것이기 때문

-- 모든 user program, data, application program, OS 전부 저장 가능한만큼 충분히 큼

-- 시스템 장애를 극복하며 일관성을 유지함 

: RAID : 여러 개의 디스크를 하나의 논리적인 단위로 묶어 데이터를 중복 저장함으로 디스크 장애 대비

: transaction log : 파일 시스템 상태를 지속적으로 갱신

-- OS must 

: low level 에서 관리하는 디스크 공간 

++ 사용된 공간에 대한 추적 및 관리

++ 사용하지 않는 공간에 대한 추적 

++ 'bad block' 에 대한 추적 및 관리

** bad block : 디스크의 일부 영역이 손상되어 더 이상 사용할 수 없는 상태 

++ low level 에서 기능 : 디스크 연산의 scheduling, 디스크의 헤드를 이동하여 요구하는 데이터 읽기 및 쓰기 가능

: 디스크 관리와 파일 시스테 ㅁ관리 간의 세부 사항 확인


5. System Call

-- OS 에 kernel 의 기능을 호출하기 위한 인터페이스

++ kernel : 운영체제에서 가중 중요한 부분으로 하드웨어와 응용 프로그램 간의 인터페이스 역할 수행

-- process control 
: 프로그램 종료 기능 제공

: 또 다른 프로그램 create/terminate 

++ attributes 를 get/set 가능

-- File manipulate 

: 생성/열기/읽기/쓰기/닫기/삭제 기능

: 속성 받고 줄수 있음

--- Device manipulate 

: 요청/읽기/쓰기/제공? 

-- 시간/날짜 get/set

 

Kernel : kernel 모드에서 실행되는 OS 의 보호된 부분

: 중요한 OS 데이터 구조 / 장치 레지스터가 사용자 프로그램으로부터 보호됨

: 권한이 있는 사용자(?)만 사용 가능

 

Hugeness

: OS를 layer 로 나눔

: 간단하고 모듈화 가능 but 성능저하

 

Microkernel 

: 커널에서 발생하는 작업을 최소화하기 위해 사용자 모드 프로세스에서 가능한 많은 OS 구현

: 신뢰성 향상, 확장 쉬움 but 성능 낮음

 

반응형
LIST