성장기록지
[운영체제] 프로세스,멀티프로그래밍, 멀티태스킹, 스레드, 멀티스레딩, 멀티프로세싱, 본문
프로그램이란?
컴퓨터가 실행할 수 있는 명령어들의 집합이다.
프로세스란?
컴퓨터에서 실행 중인 프로그램이다.
각각의 프로세스는 독립된 메모리 공간을 할당받고, 명령어들과 데이터를 가진다.
-> 프로그램이 메모리에 적재되어 cpu에 의해 실행되는 것
(cpu는 명령어를 실행하는 연산 장치이다.)
멀티 프로그래밍이란?
cpu 사용을 극대화 시키려고 사용하는 방식.
기존에는 cpu를 하나만 두는 단일 프로세스 시스템을 사용하였지만
이는 I/O작업 시 CPU가 놀게 되는 단점이 있었음.
이를 보완하고자 여러개의 프로그램을 메모리에 올려놓고 동시에 실행시켜서
I/O 작업이 발생하면 다른 프로세스가 CPU에서 실행되게 함.
단점 -> CPU 사용 시간이 길어지면 다른 프로세스는 계속 대기해야 함.
멀티태스킹이란?
프로세스는 한번 CPU를 사용할 때 아주 짧은 시간만 CPU에서 실행되도록 한 것
동시에 여러 프로그램을 균등하게 사용하고자 구성되었다.
-> 프로세스의 응답시간을 최소화하는데에 목적 (동시에 실행되는 것 처럼 느껴지게 만듬)
단점1 -> 하나의 프로세스가 동시에 여러작업을 하지는 못함
단점2 -> 컨텍스트 스위칭 비용이 들음
단점3 -> 프로세스끼리 데이터 공유가 까다로움
스레드, 멀티스레딩이란?
thread는 한 process 내에서 실행되는 동작(기능 function)의 단위.
각 thread는 속해있는 process의 Stack 메모리를 제외한 나머지 memory 영역을 공유할 수 있다.
프로세스는 기본적으로 하나의 스레드를 가지게 됨
같은 프로세스의 스레드끼리의 컨텍스트 스위칭 비용은 가벼움.
여러 스레드를 가지고 작업을 하면 진정한 의미로 동시에 작업이 되고. 이것이 멀티스레딩이다.
스레드 이후의 멀티태스킹이란?
여러 프로세스 및 여러 스레드가 짧게 쪼개진 CPU Time을 갖는 것으로 되었다.
멀티 프로세싱이란?
두개 이상의 프로세서나 코어를 활용하는 시스템!
'CS' 카테고리의 다른 글
Rest API의 개념 (0) | 2025.03.08 |
---|---|
프로토콜과 OSI 7계층 (1) | 2025.01.01 |
[자료구조] Set과 자바에서의 HashSet (1) | 2024.12.27 |
[자료구조] 해시(Hash), 자바에서의 해시 충돌 (1) | 2024.12.25 |