Notice
Recent Posts
Recent Comments
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

성장기록지

[운영체제] 프로세스,멀티프로그래밍, 멀티태스킹, 스레드, 멀티스레딩, 멀티프로세싱, 본문

CS

[운영체제] 프로세스,멀티프로그래밍, 멀티태스킹, 스레드, 멀티스레딩, 멀티프로세싱,

pengcon 2025. 2. 28. 14:41

프로그램이란?

컴퓨터가 실행할 수 있는 명령어들의 집합이다.

 

프로세스란?

컴퓨터에서 실행 중인 프로그램이다.

각각의 프로세스는 독립된 메모리 공간을 할당받고, 명령어들과 데이터를 가진다.

-> 프로그램이 메모리에 적재되어 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