블록킹(Blocking)과 논블록킹(Non-Blocking) 그리고 싱크(Sync)와 어싱크(Async) 파훼하기
·
기초 CS 파훼하기
블록킹(Blocking)과 논블록킹(Non-Blocking)블록킹(Blocking)자신의 작업을 진행하다가 다른 주체의 작업이 시작되면 다른 주체의 작업이 끝날 때까지 기다렸다가 자신의 작업을 시작하는 것1. 사원(=Thread)은 서류를 작성하여 상사(=Blocking)를 찾아가 검토를 요청했습니다.2. 상사는 서류를 검토하는 동안 옆에서 기다리라고 지시한 뒤 서류를 검토합니다.3. 사원은 상사가 검토를 마칠때 까지 기다립니다.4. 상사는 서류를 검토한 뒤 사원에게 자리로 돌아가라고 지시합니다.5. 사원은 자리로 돌아와 자신의 업무를 다시 시작할 수 있었습니다.논블록킹(Non-Blocking)다른 주체의 작업에 관련없이 자신의 작업을 하는 것1. 사원(=Thread)은 서류를 작성하여 상사(=Non-B..
스레드(Thread)와 프로세스(Process) 파훼하기
·
기초 CS 파훼하기
프로그램(Program)과 프로세스(Process)프로그램(Program)프로그램은 실행 가능한 파일로, 컴퓨터가 실행할 수 있는 명령어들의 집합입니다. 여기서 명령어들의 집합은 프로그래밍 언어로  작성된 코드를 컴파일러나 인터프리터를 통해 목적코드(Object Code)로 변환되어 이진코드(Binary Code) 형태로 컴퓨터가 이해할 수 있는 데이터를 뜻합니다.프로세스(Process)프로세스는 실행 중인 프로그램의 인스턴스로 운영체제에 의해 생성되고 관리됩니다. 프로세스는 실행 중인 프로그램의 Code, Data, Heap, Stack 등의 상태를 포함하며, 운영체제가 할당한 시스템 자원을 사용합니다. 또한 해당 프로세스에 대한 정보를 담고 있는 PCB(Process Control Block)이 함께..