본문 바로가기
OS/쉽게 배우는 운영체제

프로세스 관리 (2)

by re-hwi 2022. 2. 19.

이 단원을 공부하던 중 '스레드' 라는 것을 배웠다. 그런데 그 내용이 내가 전에 공부하던 책에서는 '모듈' 이라고 배웠었는데 같은 내용을 다른 용어로 배우니 점점 머리가 아파오기 시작했다. 

 

+ 이전의 블로그를 찾아보니 모듈은 하나의 도구와 같은 개념이고 스레드는 모듈을 이용한 최소한의 작업인 것같다.

ㄴ + 쏘공에서의 프로세스는 하나의 단계를 지칭하는 단어이고 여기서의 프로세스는 하나의 창? 으로 해석해야 하는 것 같다.


스레드

: 프로세스의 코드에 정의된 정차에 따라 CPU에 작업 요청을 하는 실행단위

 

- 프로세스와 스레드의 차이

: 프로세스는 서로 약하게 연결되어있지만 (객체지향) 스레드는 서로 강하게 연결되어 있다. (응집력)

 

- 멀티테스크

: 여러 프로세스가 모여있는 것. 운영체제가 CPU에 작업을 줄 때 시간을 잘게 나누어 배분하는 방법

→ 하나의 프로세스에 오류가 생겨도 프로세스끼리의 응집력이 떨어져 다른 프로세스에 영향을 미치지 않는다.

→ 자원의 낭비 요소가 있을 수 있다.

ex) 크롬

 

- 멀티스레드

: 하나의 프로세스 안에 여러가지의 스레드가 모여 있는 것

→ 모든 스레드가 자원을 공유하기 때문에 한 스레드에 문제가 생기면 전체 프로세스에 영향을 끼친다.

→ 운영체제가 소프트웨어적으로 프로세스를 스레드로 분할하여 운영하는 기법

ex) 인터넷 익스플로러

 

- 멀티 프로세스

: CPU를 여러개 사용하여 많은 스레드를 한번에 처리 (슈퍼스칼라 기법)

 

- CPU 멀티스레드

: 파이프라인을 이용하여 동시에 여러 스레드를 처리하도록 만든 병렬처리 기법

→ 하드웨어적인 방법

 

멀티 스레드 구조

 

- 멀티 스레드를 사용하는 이유

 fork( ) 시스템 호출을 과다하게 사용하면 코드영역과 데이터 영역의 일부가 메모리에 중복되어 존재하여 메모리가 낭비된다. 

→ 이러한 낭비요소를 줄이기 위함

 

프로세스의 영역

- 정적인 영역 : 프로세스가 실행되는동안 바뀌지 않는 영역

- 동적인 영역 : 스레드가 작업을 하면서 값이 바뀌거나 새로 만들어지거나 사라지는 영역

 

ex. 워드프로세서에서 창을 여러개 띄워 작업하는 것보다 하나의 워드프로세서에서 스레드를 여러개 생성하는 것이 낭비를 줄일 수 있다. 

 

멀티스레드의 장점

  • 응답력 향상 : 한 스레드가 입출력으로 인해 작업이 진행되지 않더라도 다른 스레드가 작업을 계속하여 사용자의 작업요구에 빨리 응답 가능
  • 자원공유 : 한 프로세스 내에서 독립적인 스레드를 생성하면 프로세스가 가진 자원을 모든 스레드가 공유하게 되어 작업을 원활하게 진행할 수 있음
  • 효율성 향상 : 불필요한 자원의 중복을 막음으로써 시스템의 효율이 향상된다.
  • 다중 CPU 지원 : 2개 이상의 CPU를 가진 컴퓨터에서 멀티 스레드를 사용하면 다중 CPU가 멀티 스레드를 동시에 처리하여 프로세스 처리 시간이 단축

멀티스레드의 단점

  • 모든 스레드가 자원을 공유하기 때문에 한 스레드가 문제가 생기면 전체 프로세스에 영향을 미침

멀티스레드 모델

1. 커널 스레드 : 커널이 직접 생성하고 관리하는 스레드

→ 멀티 CPU를 사용할 수 있음

→ 하나의 사용자 스레드와 하나의 커널 스레드가 1대1로 대응 

→ 하나의 스레드가 대기상태에 있어도 다른 스레드가 작업을 계속할 수 있음

→ 보안에 강하고 안정적으로 작동 

2. 사용자 스레드 : 라이브러리에 의해 구현된 일반적인 스레드

→ 운영체제가 멀티스레드를 지원하지 않을 때 사용

→ 사용자 프로세스 내에 여러 스레드가 존재하는데 하나의 커널스레드와 연결되기 때문에 1대다로 대응

→ 라이브러리가 직접 스케줄링을 하고 정보를 처리하기 때문에 문맥교환이 필요없음

→ 커널스레드가 대기상태에 들어가면 모든 사용자 스레드가 대기

 

3. 멀티레벨 스레드 : 사용자 스레드와 커널 스레드의 혼합방식

→ 커널 스레드는 사용자 스레드보다 같거나 적음

→ M to N대응


동적 할당 영역과 시스템 호출

 

프로세스의 동적 할당 영역

1. 큐

: 가장 먼저 들어온 데이터가 가장 먼저 나가는 구조

 

2. 스택

: 가장 먼저 들어온 데이터가 가장 늦게 나가는 구조 

 

3. 힙

: 동적으로 할당되는 변수 영역

반응형

'OS > 쉽게 배우는 운영체제' 카테고리의 다른 글

CPU 스케줄링 (2)  (0) 2022.02.23
CPU 스케줄링 (1)  (0) 2022.02.22
프로세스 관리 (1)  (0) 2022.02.18
컴퓨터의 구조와 성능 향상 (2)  (0) 2022.02.14
컴퓨터의 구조와 성능 향상 (1)  (0) 2022.02.14

댓글