운영체제 4

프로세스와 스레드

프로세스 VS 스레드 차이점 프로세스는 자신만의 고유 공간과 자원을 할당받아 사용 스레드는 다른 스레드와 공간, 자원을 공유하면서 사용 멀티 프로세스 대신 멀티 스레드를 사용하는 이유 자원의 효율성 증대 멀티 프로세스로 실행되는 작업을 멀티 스레드로 실행할 경우 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어 자원을 효율적으로 관리할 수 있음 프로세스 간의 Context Switching 시 단순히 CPU 레지스터 교체 뿐만 아니라 RAM과 CPU 사이의 캐시 메모리에 대한 데이터까지 초기화되므로 오버헤드가 큼 스레드는 프로세스 내의 메모리를 공유하기 때문에 독립적인 프로세스와 달리 스레드 간 데이터를 주고 받는 것이 간단해지고 시스템 자원 소모가 감소 처리 비용 감소 및 응답 시간 단축 프로세..

스레드

스레드 프로세스 안에서 실행되는 여러 흐름 단위 스레드는 Stack만 따로 할당 받고 나머지 영역은 서로 공유함 멀티스레드 하나의 응용 프로그램에서 여러 스레드를 구성해 각 스레드가 하나의 작업을 처리하는 것 스레드들이 공유 메모리를 통해 다수의 작업을 동시에 처리하도록 해줌 멀티스레드 장점 독립적인 프로세스에 비해 공유 메모리만큼의 시간, 자원 손실이 감소 전역 변수와 정적 변수에 대한 자료 공유가 가능 처리 비용 감소 및 응답 시간 단축 프로세스 간의 통신(IPC)보다 스레드 간의 통신의 비용이 적음 프로세스 간의 전환 속도보다 스레드 간의 전환 속도가 빠름 멀티스레드 단점 안전성 문제 하나의 스레드가 데이터 공간을 망가뜨리면 모든 스레드가 작동 불능 상태가 됨 공유 메모리를 갖기 때문 Critica..

프로세스

프로세스 메모리 상에서 실행 중인 프로그램 스레드는 프로세스 안에서 실행되는 여러 흐름 단위, 프로세스마다 최소 1개의 스레드(메인 스레드)를 포함 멀티 프로세스 하나의 컴퓨터에 여러 CPU를 사용, 하나 이상의 프로세스들을 동시에 처리 (병렬) 장점 안전성: 메모리 침범 문제를 OS 차원에서 해결 단점 각각 독립된 메모리 영역을 갖고 있어 작업량이 많을수록 오버헤드 발생 증가 Context Switching으로 인한 성능 저하 프로세스 주소 공간 프로그램이 CPU에 의해서 실행될 때 프로세스가 생성되고 메모리에 프로세스 주소 공간이 할당 됨 코드 영역 - 프로그램 소스 코드를 저장하는 영역 데이터 영역 - 전역 변수 저장 (초기화된 데이터) 스택 영역 - 함수, 지역 변수 저장 (임시 메모리 영역) 힙..

운영체제란

운영체제 (Operating System) 하드웨어를 관리하고, 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 시스템의 동작을 제어하는 시스템 소프트웨어 커널 (Kernel) 메모리에 올라온 OS의 부분, 좁은 의미의 OS라고도 함 소프트웨어가 컴퓨터 시스템에서 수행되기 위해서는 메모리에 적재 되어야 함 OS도 하나의 SW로서 메모리에 적재되어야 실행할 수 있음 OS는 규모가 크기 때문에 전부가 메모리에 적재되진 않고 필요한 부분만 적재됨 (필요할 때마다 그때그때 메모리에 적재됨) 운영체제의 기능 프로세스 관리 프로세스, 스레드 / 스케줄링 / 동기화 / IPC 통신 운영체제에서 작동하는 응용 프로그램을 관리함 CPU를 점유할 프로세스 결정과 CPU 할당, 공유자원 접근과 통신등을 관리 저장장..