📘 운영체제

시분할 시스템

  • 다중 사용자 지원, 컴퓨터 응답시간을 최소화하는 시스템 (최초 지원 - 유닉스)

멀티 태스킹

  • 단일 CPU에서 여러 응용 프로그램을 동시에 실행하는 것처럼 보이게 하는 시스템

멀티 프로그래밍

  • 최대한 CPU를 일정 시간당 많이 활용하는 시스템, CPU활용도 극대화

멀티 프로세싱

  • 여러 CPU에서 하나의 응용 프로그램을 병렬 실행하여 실행속도를 높이는 기법

📘 IPC 기법

프로세스 간 통신(Inter-Process Communication, IPC)

  • 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로이다. 서로의 커널 공간을 공유한다. 종류는 파이프라인, 메시지 큐, 공유 메모리, 파일 사용 등이 있다.

📘 프로세스와 스레드

프로세스

  • 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 종종 스케줄링의 대상이 되는 작업이라는 용어와 거의 같은 의미로 쓰인다. 구조로는 text(코드) , data(변수) , stack(임시데이터), heap(코드에서 동적으로 만들어지는 데이터)가 있다.


스레드

  • 하나의 프로세스에 여러 개의 스레드 생성 가능하고 동시에 실행 또한 가능하다. 스레드는 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능하고 각기 실행이 가능한 스택이 존재한다. CPU는 멀티 코어를 가지므로, 스레드를 여러 개 만들어 멀티 코어 활용도를 높인다.

멀티 프로세스

  • 처음 구조를 만들때 만들어야 하고, 두 개 이상 다수의 프로세서가 협력적으로 하나 이상의 작업을 동시에 처리하는 것을 의미한다. 프로세스 중 하나가 고장이 나도 다른 것엔 영향을 주지 않는다.

멀티스레드

  • 하나의 프로세스에 여러 스레드로 자원을 공유하며 작업을 나누어 수행한다. 실제로는 각각의 시간에 한 작업만 수행되지만, 병렬적으로 수행되는 것처럼 보이는 것이다. 프로그램의 일부 동작만 사용하도록 일부 코드 수정이 가능하기 때문에 짧은 반응 시간을 우선으로 하는 요즘은 멀티 스레드를 사용한다. 멀티스레드의 장점으로는 응답성, 자원공유, 경제성, 확장성이 있다.

컨텍스트 스위칭

  • 여러개의 프로세스가 실행되고 있을 때 기존에 실행되던 프로세스를 중단하고 다른 프로세스를 실행하는 것. 즉, CPU에 실행할 프로세스를 교체하는 기술이다.


📘 시스템 콜

  • 운영체제의 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공한다. 시스템 콜은 커널모드에서 실행하고 커널모드를 사용하려면 반드시 시스템 콜을 거쳐야 한다. 사용자모드와 커널모드의 통로라고 할 수 있다. 시스템의 보안과 안전성을 보장한다.

profile
효율을 생각하는 프론트엔드 개발자

0개의 댓글