프로세스/쓰레드 (1)

최찬호·2023년 3월 26일
0

프로그램: 컴퓨터가 실행할 수 있는 명령어의 집합
프로세스: 컴퓨터에서 실행 중인 프로그램. 각각의 프로세스는 독립된 메모리 공간을 할당받음. 명령어와 데이터를 가진다
CPU: 명령어를 실행하는 연산장치
메인메모리: 프로세스가 cpu에서 실행되기 위해 대기하는 곳
IO: 파일을 읽고 쓰거나 네트워크의 어딘가와 데이터를 주고 받는 것. 입출력 장치와 데이터를 주고받는 것.

단일 프로세스 시스템

  • 한 번에 하나의 프로그램만 실행됨
  • 단점: cpu사용률이 좋지 않음

멀티프로그래밍

  • CPU사용률을 극대화시키는 데 중점
  • 단점: CPU사용시간이 길어지면 다른 프로세스는 계속 대기

멀티태스킹

  • 프로세스는 한번 cpu를 사용할때 아주 짧은시간(퀀텀)만 cpu에서 실행되기로 하자
  • 프로세스의 응답시간을 최소화 시키는데 목적
  • 단점
    - 하나의 프로세스가 동시에 여러 작업을 수행하지는 못함
    - 프로세스의 컨텍스트 스위칭은 무거운 작업
    - 프로세스끼리 데이터 공유가 까다로움
    - 듀얼 코어가 등장했는데 잘 쓰고 싶음.

스레드

  • 프로세스는 한 개 이상의 스레드를 가질 수 있다.
  • 한 프로세스 안에서 여러개의 작업을 실행하기 위함
  • CPU에서 실행되는 단위
  • 같은 프로세스의 스레드들끼리 컨텍스트 스위칭은 가볍다
  • 스레드들은 자신들이 속한 프로세스의 메모리영역을 공유

멀티스레딩

  • 하나의 프로세스가 동시에 여러작업을 실행하는데 목적

멀티태스킹 확장

  • 여러 프로세스와 여러 스레드가아주 짧게 쪼개진 cpu time을 가지는 것
    멀티 프로세싱 두 개 이상의 프로세서나 코어를 활용하는 시스템
profile
체득하고 이해하자

0개의 댓글