본문 바로가기

프로세스2

[운영체제] 멀티 프로세스와 멀티스레드 멀티 스레드 멀티 스레드 한 프로세스 내에서 여러 스레드를 두는 것 멀티 프로세스 대신 멀티 스레드를 사용하는 이유 스택을 제외한 자원을 공유하기 때문에 자원의 효율성 증대 프로세스 생성 비용보다 스레드 생성 비용이 적다. 프로세스 간 컨텍스트 스위칭 시 오버헤드가 크지만 스레드는 메모리를 공유하기 때문에 자원 소모가 적다. 처리 비용 및 응답 시간 단축 프로세스 간 통신(IPC)보다 스레드 간의 통신 비용이 적다. 스레드 간의 전환 속도가 훨씬 빠르다. 멀티 스레드 사용 시 주의할 점 힙 영역을 공유하기 때문에 힙 영역 자원 사용 시 동기화 필수 동기화를 위한 락이 과도하게 사용되면 성능이 저하된다. 일부 스레드가 종료되면 프로세스 전체가 종료될 수 있다. 2022. 2. 25.
[운영체제] 프로세스와 스레드 차이 프로세스와 스레드의 차이 프로세스 현재 실행 중인 프로그램 메모리 위에 적재되어 cpu의 할당을 받을 수 있다. 동적 메모리인 힙을 할당받을 수 있다. 프로세스의 구조 text(code): 일반적인 코드 data: 변수 및 초기화된 데이터 stack: 임시 데이터(함수 호출 및 로컬 변수 등) heap: 코드 내에서 동적으로 생성되는 데이터 프로세스는 다른 프로세스의 자원에 접근할 수 없다. 역할에 따른 구분 사용자 프로세스 사용자 코드를 수행하는 프로세스 커널 프로세스 모든 메모리와 프로세스의 명령에 액세스할 수 있는 프로세스 실행 순서 제어 및 다른 프로세스의 접근 제어 사용자 프로세스 생성 프로세스의 상태 변화 New: 프로그램이 메인 메모리에 할당 Ready: 프로그램 초기화 등 모든 준비를 마친.. 2022. 2. 25.