티스토리 뷰

반응형

프로세스의 연산

프로세스의 구조

· 코드 영역

프로그램의 본문이 기술된 곳으로 텍스트 영역이라고도 한다.

· 데이터 영역

코드가 실행되면서 사용하는 변수나 파일 등의 각종 데이터를 모아놓은 곳이다.

· 스택 영역

운영체제가 프로세스를 실행하기 위해 부수적으로 필요한 데이터를 모아놓은 곳이다.

 

 

 

 

프로세스의 생성과 복사

▶ fork()

개념 : 실행 중인 프로세스를 그대로 복사하는 함수

 

장점

  1. 프로세스의 생성 속도가 빠르다.
  2. 추가 작업 없이 자원을 상속할 수 있다.
  3. 시스템 관리를 효율적으로 할 수 있다.

 

동작 과정

출처 : math-coding

  • 프로세스 구분자가 바뀐다.
       부모 자식이라도 자기 자신을 칭하는 고유한 번호가 존재한다.

  • 부모 자식이 차지하고 있는 메모리 위치가 다르므로 메모리 관련 정보도 바뀐다.

 

프로세스의 전환

▶ exec()

개념 : 기존의 프로세스를 새로운 프로세스로 전환하는 함수

 

장점

  1. 이미 만들어진 프로세스의 구조를 재활용
  2. 재활용을 하면 프로세스 제어 블록, 메모리 영역, 부모 자식 관계를 그대로 사용 가능하여 편리
  3. 새로운 코드 영역만 가져오면 되기 때문에 운영체제의 작업이 수월

 

동작 과정

출처 : math-coding

  • 기존 코드 지우고 새로운 코드로 변경
  • 데이터 영역이 새로운 변수로 채워지고 스택 영역은 리셋
  • 각종 레지스터 정보 모두 리셋

 

프로세스의 계층 구조

장점

  1. 여러 작업 동시 처리
  2. 용이한 자원 회수

고아 프로세스

- 프로세스가 종료된 후에도 비정상적으로 남아 있는 프로세스

- 좀비 프로세스라고도 부름

 

 

스레드

운영체제 작업 단위 : 프로세스

CPU 작업 단위 : 스레드

 

CPU 내에 작업 요청을 하는 실행 단위를 스레드라 한다.

 

*프로세스(운영체제) > 스레드(CPU)

 

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

프로세스끼리 연결 : 약한 연결

스레드끼리 연결 : 강한 연결

 

스레드 관련 용어

  • 멀티스레드 : 프로세스 내 작업을 여러 개의 스레드로 분할 -> 작업 부담 ↓
  • 멀티태스킹 : 운영체제가 CPU에 작업을 줄 때 시간을 잘게 나누어 배분하는 기법
  • 멀티프로세싱 : CPU를 여러 개 사용하여 여러 개의 스레드를 동시에 처리하는 작업 환경
  • CPU 멀티 스레드 : 파이프라인 기법을 이용하여 동시에 여러 스레드를 처리하는 병렬 처리 기법

 

멀티스레드

개념

하나의 프로세스에 여러 스레드로 자원을 공유하며 작업을 나누어 수행

 

 

장점

  1. 응답성 향상
    한 스레드가 작업을 안 해도 다른 스레드가 작업을 계속하여 빠르게 응답할 수 있다.
  2. 자원 공유
    한 프로세스 내에 독립적인 스레드를 생성하면 모든 스레드가 공유
  3. 효율성 향상
    자원의 중복 제거
  4. 다중 CPU 지원
    다중 CPU가 멀티스레드를 동시에 처리 -> 프로세스 처리 시간 ↓

 

멀티스레드 모델

  • 커널 스레드 : 커널이 직접 생성하고 관리하는 스레드
  • 사용자 스레드 : 라이브러리에 의해 구현된 일반적인 스레드

 

하트 누르면 위 내용 전부 기억하게 됩니다.

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함