티스토리 뷰

728x90

프로세스 관리

프로세스 = 실행 중인 프로그램

 프로세스는 CPU 시간, 메모리, 파일, 입출력 장치를 필요한 여러 가지 자원을 필요로 한다. 일반적으로 이러한 자원은 실행되는 동안 할당된다. 프로세스가 생성될 때 할당받는 여러 가지 물리적 논리적인 자원들 이외에도, 여러 초기화 데이터(입력)도 전달될 수 있다. 프로세스가 종료되면 운영체제는 재사용 가능한 자원을 회수한다. 

 ex) 웹 페이지 내용을 화면에 표시하는 프로세스에서, URL을 입력으로 제공받으며 적절한 명령과 시스템 콜을 실행한다.

 

⚫ 프로그램 : 수동적 (passive) - 디스크에 저장된 파일의 내용

⚫ 프로세스 : 능동적 (active) - 다음 수행할 명령을 지정하는 프로그램 카운터(Program Counter)를 가짐

 

 한 프로세스의 수행은 반드시 순차적이어야한다. 두 개의 프로세스가 동일한 프로그램과 연관되어 있더라도, 그들은 두 개의 별도의 수행 순서로 간주된다. 다중 스레드 프로세스는 여러 개의 프로그램 카운터를 가지고 있으며 이 카운터들은 각 스레드가 실행할 다음 명령어를 가리킨다. 

 

한 프로세스는 한 시스템 내의 작업 단위이다. 즉, 시스템은 프로세스의 집합(운영체제 프로세서들+사용자 프로세서들)으로 이루어져있다. 

운영체제 프로세서들 : 시스템 코드를 수행하는 프로세서들

사용자 프로세서들 : 사용자 코드를 수행하는 프로세서들


운영체제가 하는 프로세스 관리

1. 사용자 프로세스와 시스템 프로세스의 생성과 제거

2. CPU 에 프로세스와 스레드 스케줄하기

3. 프로세스의 일시 중지와 재수행

4. 프로세스 동기화를 위한 기법 제공

5. 프로세스 통신을 위한 기법 제공


메모리 관리

메모리

: 크기가 수십 만에서 수십 억까지 범위를 갖는 바이트(주소를 포함)의 대용량 배열

메인 메모리

: CPU와 입출력 장치에 의해 공유되는, 빠른 접근이 가능한 데이터의 저장소

: CPU가 직접 주소 지정 가능

: CPU가 직접 접근 가능한 유일한 대량 메모리이다.

=> CPU가 명령을 수행하기 위해서는 명령이 메인 메모리 내에 있어야한다.

 

 CPU의 이용률과 사용자에 대한 컴퓨터의 응답 속도를 개선하기 위해, 메모리 관리 기법이 필요하다. 메모리 관리 기법의 선택은 여러 요인에 의해 결정되지만, 특히 시스템의 하드웨어 설계에 좌우된다.


폰노이만 방식 컴퓨터에서 메인 메모리

CPU가

명령어 인출 사이클(instruction fetch-cycle) 동안 메인 메모리로부터 명령어를 읽고,

자료 인출 사이클(data fetch-cycle) 동안 메인 메모리로부터 데이터를 읽고 쓴다.


 프로그램이 수행되기 위해서는 반드시 절대 주소로 매핑(mapping)되고 메모리에 적재되어야한다.

프로그램 수행 과정

1. 프로그램  수행

        1.1 절대 주소를 생성

        1.2 메모리의 프로그램 명령어와 데이터에 접근

2. 프로그램 종료

        2.1 프로그램이 차지하던 메모리 공간은 가용공간으로 선언

        2.2 다음 프로그램이 적재 후 수행


운영체제가 하는 메모리 관리

1. 메모리의 어느 부분이 현재 사용되고 있으며 어느 프로세스에 의해 사용되고 있는지 추척

2. 필요에 따라 메모리 공간을 할당하고 회수

3. 어떤 프로세스들을 메모리에 적재하고 제거할 것인가를 결정


파일 시스템 관리

 운영체제는 파일을 물리적 매체로 매핑하며, 저장장치를 통해 이들 파일에 접근한다.

*매핑 : 컴퓨터 시스템에서 물리적인 메모리 주소와 프로그램이나 하드웨어 장치에서 사용하는 논리적인 주소 간의 대응 관계를 정의하는 프로세스를 나타타냄.

 컴퓨터는 여러 물리적 매체(2차 저장장치 + 3차 저장장치)에 정보를 저장할 수 있다. 대부분의 매체는 디스크 드라이브와 같은 장치에 제어된다. 해당 장치는 자신만의 독특한 특성이 있는데, 접근 속도, 용량, 데이터 전송률, 그리고 접근방식(순차 접근 방식, 임의 접근 방식) 등이 있다.


파일

: 파일 생성자에 의해 정의된 관련 정보의 집합체

: 프로그램(소스와 목적 프로그램 형태)과 데이터

: 텍스트 파일과 같은 자유 형태이거나 엄격하게 포맷된 형태(mp3)일 수도 있다.

데이터 파일 : 숫자, 영문자, 영숫자로 구성


운영체제가 하는 파일시스템 관리

1. 파일의 생성 및 제거

2. 디렉터리 생성 및 제거

3. 파일과 디렉터리를 조작하기 위한 프리미티브의 제공

4. 파일을 보조저장장치로 매핑

5. 안정적인(비휘발성) 저장 매체에 파일을 백업


대용량 저장장치 관리

보조저장장치

 메인 메모리를 백업하기 위해 보조저장장치를 제공한다. 프로그램 대부분은 메모리에 적재될 때까지 보조저장장치에 저장된다. 프로그램은 장치를 처리 소스 및 대상으로 모두 사용한다. 

ex) HDD, NVM


운영체제가 하는 보조저장장치 관리

1. 마운팅과 언마운팅

2. 사용 가능 공간(free-space)의 관리

3. 저장장소 할당

4. 디스크 스케줄링

5. 저장장치 분할

6. 보호


3차 저장장치

 보조저장장치보다 더 느리고 비용은 적게 들고 때로는 용량이 더 큰 장치

ex) 자기 테이프 드라이브와 그 테이프, CD, DVD, Blu-ray 드라이브, 플래터

 

하는 일

 디스크 데이터의 백업 

가끔 쓰이는 데이터 및 장기간 보존이 필요한 데이터 저장


운영체제가 하는 3차 저장장치 관리

1. 마운트와 언마운트

2. 프로세스의 배타적 사용을 위한 장치의 할당과 반환

3. 보조저장장치로부터 3차 저장장치로의 데이터 이주


캐시 관리

 CPU 내부의 프로그램 가능한 레지스터들은 메인 메모리를 위한 고속의 캐시이다. 프로그래머(컴파일러)는 어느 정보를 메인 메모리에 두고, 어느 정보를 레지스터에 둘 것인지를 결정한다.

캐시의 동작 원리

 저장장치에 보관된 정보를 사용하기 위해서, 더 빠른 장치인 캐시에 일시적으로 복사된다.

 

특정 정보가 필요한 경우,

1. 캐시에 해당 정보가 있는지 조사

2.1 캐시에 정보가 있을 경우, 정보를 캐시로부터 직접 가져와서 사용

2.2 캐시에 없을 경우, 메인 메모리 시스템으로부터 정보를 가져와서 사용 -> 정보가 곧 다시 사용될 확률이 높을 경우 캐시에 넣기

캐시 -> CPU 및 레지스터로의 데이터 전송 : 운영체제의 간섭 없이 하드웨어적으로 이루어진다.

디스크 <-> 메모리간의 데이터 전송 : 통상 운영체제에 의해 제어된다.

 

캐시 중에는 하드웨어로 구현된 캐시도 있다. 

 

명령 캐시 : 시스템 대부분은 다음에 수행될 것으로 예상되는 명령을 넣어둔다. 

만약 명령 캐시가 없다면, CPU는 메인 메모리로부터 다음 명령을 인출해 올 도안 몇 사이클을 기다려야한다. 이와 비슷한 이유로 시스템 대부분은 하나 이상의 고속 데이터 캐시를 갖고있다.


캐시 일관성 문제

 메모리 계층 구조에서, 동일한 데이터가 서로 다른 수준의 저장장치 시스템에 나타난다. CPU에서 하나의 프로세스만 실행될 경우 아무런 문제가 없다. 하지만 여러 개의 프로세스가 이리저리 전환되는 다중 태스킹 환경에서는 문제가 발생할 수 있다. 잘못 갱신된 A의 값을 얻을 수 있기 때문이다.

 

 예를 들어, B라는 파일에 있는 A 변수가 1 증가되어야한다. 이때 파일 B 가 자기 디스크에 있다고 가정하자. 증가 연산을 실행하려면 먼저, A가 있는 디스크 블록을 메인 메모리로 복사해와야한다. 그리고나서 메인 메모리에서 캐시에 A를 복사한 후, 내부 레지스터로 다시 복사한다. 따라서, A의 복사본이 여러 곳에 존재하게 된다.

 

 다중 태스킹 환경과 여러 개의 CPU가 동시에 실행되는 환경일 경우, 문제는 더 복잡해진다. 한 캐시에 있는 A값이 갱신될 경우 A가 존재하는 모든 캐시에 즉각적으로 반영돼야한다. 이를 캐시 일관성 문제라고 하며, 이는 일반적으로 하드웨어적인 문제이다.

 


입출력 시스템 관리

 운영체제의 목적 중 하나는 사용자에게 특정 하드웨어 장치의 특성을 숨기는 것이다. 

ex) UNIX에서 입출력 장치의 특성은 입출력 서브시스템에 의해 운영체제 자체의 대부분으로부터 숨겨져있다. 

입출력 시스템의 구성

1. 버퍼링, 캐싱, 스풀링을 포함한 메모리 관리 구성요소

2. 일반적인 장치 드라이버 인터페이스

3. 특정 하드웨어 장치들을 위한 드라이버


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