📌 프로그램(Program) 이란?
- 컴퓨터가 실행할 수 있는 명령어들의 집합
📌 프로세스(Process)란?
- 컴퓨터에서 실행 중인 프로그램
- 각각의 프로세스는 독립된 메모리 공간을 할당 받음 ,
- 명령어들과 데이터를 가짐
📌 CPU(Central Processing Unit) 란?
- 명령어를 실행하는 연산장치
📌 메인 메모리(Main Memory) 란?
- 프로세스가 CPU에서 실행되기 위해 대기하는 곳
📌 IO(Input/Output) 란?
- 파일을 읽고 쓰거나 네트워크의 어딘가와 데이터를 주고 받는 것
- 입출력 장치와 데이터를 주거나 받는 것
📌 단일 프로세스 시스템이란?
- 한번에 하나의 프로그램만 실행됨
📌 단일 프로세스 시스템 단점
- CPU 사용률이 좋지 않음
📌 단일 프로세스 시스템 단점(해결책)
- 여러 개의 프로그램을 메모리에 올려놓고 동시에 실행시키자
- IO 작업이 발생하면 다른 프로세스가 CPU에서 실행됨
📌 멀티프로그래밍(MultiProgramming)
- 여러개의 프로그램이 동시에 실행된다.
- CPU 사용률을 극대화 시키는 목적
- 단점 : CPU 사용 시간이 길어지면 다른 프로세스는 계속 대기
- 해결책 : 프로세스는 한번 CPU를 사용할 때 아주 짧은 시간(=quantum)만 CPU에서 실행되도록 하자
📌 멀티태스킹(MultiTasking)
- 동시에 여러 프로그램을 실행시킨다는 면에서 멀티프로그래밍과 유사함.
- 차이점은 cpu 타임을 아주 짧게 쪼개 cpu 타임 안에서 프로세스들이 서로 번갈아 가면서 실행될수 있도록 함
- 프로세스의 응답 시간을 최소화 시키는데 목적
- 다만, 하나의 프로세스가 동시에 여러 작업을 수행하지는 못함
- 프로세스의 *컨텍스트 스위칭은 무거운 작업
( * 컨텍스트 스위칭이란? cpu에서 실행되기 위해서 어느 한 프로세스에서 다른 프로세스로 교체되는 것 )
- 프로세스끼리 데이터 공유가 까다로움
- 듀얼 코어가 등장했는데 잘 쓰고 싶음
📌 스레드(Thread)
- 스레드가 나온 배경 : 한 프로세스에서 여러개의 작업들을 동시에 실행하기 위함
- 프로세스는 한 개 이상의 스레드를 가질 수 있다.
- CPU에서 실행되는 단위 (unit of execution)
- 같은 프로세스의 스레드들끼리 컨텍스트스위칭은 가볍다.
- 스레드들은 자신들이 속한 프로세스의 메모리 영역을 공유 (즉, 데이터 공유가 쉽다)
📌 멀티 스레딩(MultiThreading)
- 하나의 프로세스가 동시에 여러 작업을 실행하는데 목적
📌 확장된 멀티태스킹(MultiTasking) 개념
- 여러 프로세스와 여러 스레드가 아주 짧게 쪼개진 CPU time을 나눠 갖는 것
📌멀티프로세싱(MultiProcessing) 개념
- 두개 이상의 프로세서나 코어를 활용하는 시스템
📌해당 글은 쉬운코드 유튜브영상을 보고 참고하였습니다.
'IT - Introduction to Computer Science' 카테고리의 다른 글
[IT지식] 프로토콜과 OSI 7 layer -네트워크의 기능들이 어떻게 구조화 돼서 동작하는가 (0) | 2023.08.23 |
---|---|
[IT지식] 네트워크와 인터넷 개념 (0) | 2023.08.23 |
[IT지식] 커널(Kernel)이란? (0) | 2023.01.27 |
[IT지식] 디자인 패턴[Design pattern]이란? (0) | 2022.06.23 |
[IT지식] FTP (File Transfer Protocol) 란? (0) | 2022.06.14 |