반응형
  • 프로세스란?
    • 메인 메모리로 이동하여 실행중인 프로그램 → 일반적인 정의

 

  • 프로세스의 범위
    • 메모리 구조 + 레지스터 Set
    • 프로세스 별 독립적인 대상은 프로세스의 범주에 포함시킬 수 있다. (Stack, Heap, Register 등)
  • 프로세스 스케줄러
    • 둘 이상의 프로세스가 적절히 실행되도록 컨트롤
    • 스케줄러 같은 경우에는 처리하는 속도가 빨라서 두개의 프로세스가 동시에 일을 하고 있는 것 처럼 느껴짐.

 

 

  • 프로세스의 상태

 

  • 시메트릭 멀티 프로세싱
    • 여러 개의 Multi-core (or Multi-processor)가 하나의 메모리 공간을 공유하며 동작
    • OS가 관리자 역할을 해서 프로그래머 입장에서는 프로세서가 하나만 있다고 생각하고 프로그래밍 함.
    • 여러 개의 Core가 Precessing을 나누어 처리해서 Multi Processing 효과를 극대화 해준다.

 

 

  • 직렬 컴퓨팅(Serial Computing)
    • 문제는 명령의 개별 시리즈로 나눠진다.
    • 명령들을 순차적으로 처리한다.(하나를 처리한 후 그 다음을 처리한다.)
    • 하나의 프로세서에서 명령이 처리된다.
    • 언제나 하나의 명령만 처리한다.

 

 

  • 병렬 컴퓨팅 (Parallel Computing)
    • 하나의 문제는 동시에 해결할 수 있는 개별 문제들로 나눠짐.
    • 각각의 문제는 명령의 시리즈로 더 나눠진다.
    • 각각의 문제 속 명령들은 다른 프로세서에서 동시에 처리된다.

 

  • 컨텍스트 스위칭
    • 여러개의 프로세스가 실행되고 있을 때 기존에 실행되던 프로세스를 중단하고 다른 프로세스를 실행하는 것. 즉, CPUT에 실행할 프로세스를 교체하는 기술.

 


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

 

프로세스는 메모리 상에서 실행중인 프로그램을 말하며, 스레드는 이 프로세스 안에서 실행되는 흐름 단위를 말한다.

프로세스는 최소 하나의 스레드를 보유하고 있으며, 각각 별도의 주소공간을 독립적으로 할당 받는다.(code, heap, stack)

스레드는 이중에 stack만 따로 할당받고 나머지 영역은 스레드끼리 서로 공유한다

 

프로세스 : 자신만의 고유 공간과 자원을 할당받아 사용

스레드 : 다른 스레드와 공간과 자원을 공유하면서 사용

.

프로세스의 문제점

  • 프로세스 생성에 큰 오버헤드가 있다. ( 프로세스를 생성할때 많은 시간이 소요됨0
  • 프로세스 컨텍스트 스위칭의 비효율성, 오버헤드가큼
  • 프로세스 사이에 통신이 어렵다는점 (IPC사용해야함)

 

스레드의 출현 목적

  • 프로세스보다 크기가 작은 실행 단위 필요
  • 프로세스의 생성 및 소멸에 따른 오버헤드 감소
  • 빠른 컨텍스트 스위칭
  • 프로세스들의 통신 시간, 방법 어려움 해소

 

스레드 주소공간에 대해서 설명

하나의 스레드가 동작하기 위해 총 6개의 공기 있다.

사적공간, 공유공간, 커널 스택

사적공간은 스레드 코드 공간, 스레드 전용 전역변수 공간, 스택 공간이 있다.

공유공간에는 데이터 공간, 힙 공간이 있다. 그리고 커널 스택이 있다.

반응형

'시스템 프로그래밍' 카테고리의 다른 글

쓰레드  (1) 2024.02.07
프로세스간 통신(IPC), 핸들  (0) 2024.02.02
커널 오브젝트와 오브젝트 핸들  (0) 2024.02.02
64비트 기반 프로그래밍  (1) 2024.02.02
시스템 프로그래밍이란?  (0) 2024.02.02