프로세스, 스레드, 멀티태스킹, 멀티스레딩, 멀티프로세싱

이다혜·2024년 1월 12일
0

영상후기

목록 보기
7/12

📌 사전 배경 지식

  • 프로그램(program)

    : 컴퓨터가 실행할 수 있는 명령어들의 집합
  • 프로세스(process)

    : 컴퓨터에서 실행 중인 프로그램
    각각의 프로세스는 독립된 메모리 공간을 할당 받고, 메모리 공간에 명령어들과 데이터를 가진다.
  • CPU(central processiong unit)

    : 명령어를 실행하는 연산 장치
  • 메인 메모리(main memory)

    : 프로세스가 CPU에서 실행되기 위해 대기하는 곳
  • IO(input/output)

    : 파일을 읽고 쓰거나 네트워크의 어딘가와 데이터를 주고 받는 것, 입출력 장치와 데이터를 주고 받는것

📌 단일 프로세스 시스템

한 번에 하나의 프로그램만 실행된다.
또 다른 프로그램을 실행하려면 먼저 실행하고 있던 프로그램을 끝내고 그 다음 프로그램을 실행해야 한다.

단점

실행 중에 있는 프로세스가 I/O 작업을 하는 동안에는 CPU가 아무것도 안하고 쉬기 때문에 CPU 사용률이 좋지 않다.

해결책 : 멀티 프로그래밍

IO 작업이 발생하면 다른 프로세스가 CPU에서 실행되도록
여러 개의 프로그램을 메모리에 올려놓고 동시에 실행시킨다. = 멀티 프로그래밍

📌 멀티프로그래밍(multiprogramming)

IO 작업이 발생하면 다른 프로세스가 CPU에서 실행되도록
여러 개의 프로그램을 메모리에 올려놓고 동시에 실행시킨다.

CPU 사용률을 극대화 시킨다.

단점

CPU 사용시간이 길어지면 다른 프로세스는 계속 대기해야한다.

해결책 : 멀티태스킹

프로세스는 한 번 CPU를 사용할 때 아주 짧은 시간만 CPU에서 실행되도록 한다. = 멀티태스킹

📌 멀티태스킹(multitasking)

프로세스는 한 번 CPU를 사용할 때 아주 짧은 시간만 CPU에서 실행되도록 한다.

프로세스의 응답 시간을 최소화 시키는데 목적이 있다.

일반 사용자가 느끼기에는 마치 여러 프로그램이 동시에 실행되고 있다고 느낀다.

아쉬운 점

  • 하나의 프로세스가 동시에 여러 작업을 수행하지 못한다.
  • 프로세스의 컨텍스트 스위칭은 무거운 작업이다.
  • 프로세스끼리 데이터 공유가 까다롭다.

    💡 컨텍스트 스위칭


    CPU에서 실행되기 위해 한 프로세스에서 다른 프로세스로 교체되는 것

해결책 : 스레드(thread)

📌 스레드(thred)

  • 프로세스는 한 개 이상의 스레드를 가질 수 있다.
  • CPU에서 실행되는 단위(unit of execution)
  • 가튼 프로세스의 스레드들 끼리의 컨텍스트 스위칭은 가볍다.
  • 스레드들은 자신들이 속한 프로세스의 메모리 영역을 공유한다.

멀티 스레딩 : 하나의 프로세스가 동시에 여러 작업을 실행한다.

📌 확장된 멀티태스킹

스레드가 등장하면서 멀티 태스킹의 개념이 확장되었다.
여러 프로세스와 여러 스레드가 아주 짧게 쪼개진 CPU time을 나눠 갖는다.

📌 멀티 프로세싱(multiprocessiong)

두 개 이상의 프로세서나 코어를 활용하는 시스템

0개의 댓글