📚 Computer Science/OS

📚 Computer Science/OS

[운영체제] 동기와 비동기, 블로킹과 논블로킹

동기(Synchronous) - 현재 작업의 응답이 끝남과 동시에 다음 작업이 요청된다. - 함수를 호출하는 곳에서 호출되는 함수가 결과를 반환할 때까지 기다린다. - 작업 완료 여부를 계속해서 확인한다. 비동기(Asynchronous) - 현재 작업의 응답이 끝나지 않은 상태에서 다음 작업이 요청된다. - 함수를 호출하는 곳에서 결과를 기다리지 않고, 다른 함수(callback)에서 결과를 처리한다. - 작업 완료 여부를 확인하지 않는다. 블로킹(Blocking) - 제어권이 호출된 함수에게 넘어가서 호출된 함수 내에서 작업이 모두 끝난 후 호출한 함수에게 다시 제어권이 넘어온다. - 작업이 완료된 후 새로운 작업을 수행할 수 있다. 논블로킹(Non-Blocking) - 제어권이 계속 호출한 함수에 있..

📚 Computer Science/OS

[운영체제] 프로세스와 스레드 그리고 차이

프로그램(program) 이란? 파일 단위로 저장 장치에 저장되어 있으며, 아직 실행되지 않은 상태의 코드 덩어리를 의미한다. 프로세스(process) 란? 동적인 개념으로는 '실행 중인 프로그램'이라 한다. 운영체제로부터 메모리 공간을 할당받은 프로그램을 프로세스라고 부른다. 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받는다. 기본적으로 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신(IPC, inter-process communication)을 사용해야 한다. ..

ryang x2
'📚 Computer Science/OS' 카테고리의 글 목록