728x90
728x90
728x90

멀티프로그래밍:

메모리에 여러 프로그램을 올려둔 다음

한 프로세스가 대기 상태가 되면 다른 프로세스의 작업을 수행

즉 CPU입장에서는 쉬지않고 일하여 효율적임

 

멀티태스킹(=시분할 시스템, time sharing):

프로세스마다 작업 시간을 정해두고 번갈아가면서 작업하는 방식

(사용자는 마치 여러 프로세스가 동시에 진행되는 것처럼 "보이게" 됨, 실제론 동시가 아니라 프로세서가 왔다리 갔다리 하는 중)

 

728x90

'삭제대상' 카테고리의 다른 글

Data Serialization(Parquet, Avro, JSON, YAML, XML, CSV)  (0) 2020.12.12
728x90

program:디스크에 저장된 수동적인 것

process:메인 메모리에 존재하는 능동적인 것

thread:프로세스의 작업 흐름

 

하나의 프로그램에 프로세스는 다수 가능

하나의 프로세스에 스레드는 다수 가능

 

멀티스레드 프로세스는 다수의 program counter를 갖는다.

 

프로세스는 상태를 갖는다.

new(새로생성)

ready(프로세서 할당 기다림)

running(프로세서가 할당되어 실행중)

terminated(실행중 종료됨)

waiting(작업이 완료되어 입출력을 기다림)

 

멀티프로그래밍으로 여러 프로세스를 메모리에 올려둬도 되는데 굳이 스레드를 여럿두어 멀티스레딩을 하는 이유는

-두 프로세스가 하나의 데이터를 공유하려면 메시지 패싱이나 공유 메모리 등을 사용해야되는데 효율도 떨어지고 개발자가 구현 및 관리하기가 번거로움

-프로세스 사이 컨텍스트 스위칭이 계속 일어나면 오버헤드가 발생, 스레드 전환에도 컨텍스트 스위칭이 발생하지만 속도가 더 빠름

(메시지 패싱:interprocess communication 중 하나로, 커널을 통해 정보를 송수신, 컨텍스트 스위칭 발생하여 느림, 동기화문제가 발생할 수 있음(수신자가 메시지 받을 때까지 송신자를 blocking 등의 형태로 동기화문제해결책 개발을 해줘야함)

(공유 메모리:커널을 거치지않고 두 프로세스가 메모리 일정역역을 사용하여 정보를 송수신, memory-safe를 개발자가 구현해야하는데 번거로움)

 

 

728x90
728x90

0. processor란, 굉장히 범용적인 단어이다.

처리 장치. 연산 처리 장치. 처리 프로그램. 데이터에 연산 조작 등 몇 개의 처리를 일으키는 기능을 갖는 「장치」나 「프로그램」의 총칭컴퓨터 시스템 전체를 가리키는 경우도 있다. 

즉, 연산을 처리하는 장치는 모두 processor이다. 대개는 CPU를 가리킨다. 하지만 GPU도 processor인 것이다.

Multiprocessor system이라고 할 때 processor는 CPU를 가리킨다. 따라서 2개 이상 CPU를 가진 컴퓨터를 가리킨다.

(가정용은 거의 Single-processor)

CPU내에 core를 각각 processor라고도 부른다. 실행 "처리장치"이기 때문

 

1. core란

먼저 CPU란

CPU-arithmetic, logical control, I/O operations을 수행

core-CPU안에서 명령을 받고 수행하는, execution unit

따라서, core는 CPU의 구성요소이다.

멀티코어란 하나의 CPU 칩셋에 다수의 코어가 집접된 형태의 CPU 종류를 가리킨다.

(요즘은 대다수가 멀티코어)

 

2. CPU, Microprocessor, Micro Processor Unit이란

CPU는 Arithmetric and Logic Unit과 Control Unit으로 이루어져 있어, 컴퓨터시스템을 통제하고 프로그램의 연산을 실행하고 처리하는 컴퓨터의 제어 장치 혹은 그 기능을 내장한 칩을 가리킨다.

Microprocessor(=Micro Processor Unit=MPU)은 모토롤라가 쓰던 CPU와 같은 장치를 가리키던 용어로, 현재는 CPU와 동의어

(CPU나 MPU 모두 원칩솔루션으로 전환했기 때문)

 

 

비고:

Micro Controller Unit이란

CPU와 입출력 모듈을 하나의 칩으로 만들어 정해진 기능을 수행하는 것, 임베디드 애플리케이션을 위해 디자인되었으며, 개인용 컴퓨터(PC)에서처럼 다양한 요구에 동작하는게 아니라, 정해진 일을 수행하도록 프로그래밍되어, 냉장고나 전자레인지 등에 사용됨

728x90

'CS' 카테고리의 다른 글

[CS] 개발자에 좋은 글/사이트  (0) 2023.08.21
[OS]program, process, thread  (0) 2020.11.24
[OS]DMA(Direct Memory Access), PIO(Programmed I/O)  (0) 2020.11.24
[OS]인터럽트, 트랩  (0) 2020.11.24
(미완)UML, Unified Modeling Language란  (0) 2020.11.22
728x90

DMA(Direct Memory Access):device와 memory를 직접 연결하는 방식으로, 버스가 지원하는 기능, device controller에 의해 직접 메모리에 전달하며 CPU에서는 데이터 이동이 완료되었다는 인터럽트만 한 번 발생, 따라서 CPU가 하는 일이 줄어들어 성능이 좋아짐

PIO(Programmed I/O):device data를 CPU를 거쳐 메모리에 로드하는 방식으로 DMA 이전의 방식으로 성능이 느리다.

 

728x90

'CS' 카테고리의 다른 글

[OS]program, process, thread  (0) 2020.11.24
[OS]CPU, processor, microprocessor, core  (0) 2020.11.24
[OS]인터럽트, 트랩  (0) 2020.11.24
(미완)UML, Unified Modeling Language란  (0) 2020.11.22
[Python]Static variable, Static method, Class method  (0) 2020.11.22
728x90

인터럽트(Interrupt):이벤트 발생을 CPU에게 알리는 것, 하드웨어와 소프트웨어에 의해 발생할 수 있다.

트랩(Trap):소프트웨어에 의해 발생하는 인터럽트를 트랩이라 한다.

 

하드웨어는 System bus를 통해 CPU에 신호를 보냄으로써 인터럽트를 발생

소프트웨어는 System call이라는 특별한 명령으로 인터럽트를 발생

 

728x90

+ Recent posts