[운영체제] 멀티스레드의 동시성(Concurrency)과 병렬성(Parallelism)
·
study/CS⚡
하나의 프로세스에서 다수의 스레드들이 실행되는 것을 멀티스레딩이라고 한다. 하나의 프로세스 안에서 스레드끼리 code, data, heap 영역을 공유하고 각각의 stack, PC, 레지스터를 가지기 때문에 자원을 공유하기 좋아 멀티프로세스보다 이점이 있다. 동시성(Concurrency) 싱글 코어에, 멀티코어에서 멀티 스레딩을 구현하는 방식이다. 이름이 동시성이지만 진짜로 동시에 실행된다는 의미는 아니고 여러 작업이 동시에 실행되는 것처럼 보이는 것을 말한다. 한 타임에 하나의 스레드만 실행되고 짧은 시간 동안 스레드를 적절히 바꿔가면서 실행되는 것이다. 위 사진을 보면 4개의 thread가 하나의 core를 나눠서 쓰고 있다. 병렬성(Parallelism) 멀티 코어에서 멀티 스레딩을 구현하는 방식을..
[운영체제(OS)] 시스템 콜(System Call)이란?
·
study/CS⚡
CPU는 User Application이 시스템을 손상시키는 것을 막기 위해 이중 동작 모드를 제공한다. 이중 동작 모드란, 유저 모드, 커널 모드로 나누어서 동작하는 것을 말한다. 컴퓨터에는 중요한 자원들이 많이 저장되어 있는데, 사용자가 이러한 자원에 함부로 접근할 수 있다면 악의가 없다고 해도 시스템을 망칠 수 있기 때문에 시스템을 보호하기 위해 나누어서 작동하는 것이다. *️⃣커널(Kernel)이란? 컴퓨터는 하드웨어와 소프트웨어로 나뉘고, 소프트에어는 다시 응용 프로그램과 운영체제로 나뉜다. 운영체제는 또 시스템 프로그램과 커널로 나뉘게 된다. 프로그램이 실행되기 위해서는 컴퓨터 메모리에 해당 프로그램이 올라가 있어야 한다. 하지만 메모리는 한정적이기 때문에 안 쓰는 프로그램까지도 메모리에 올라..
cowboysj