[CS 면접 질문/ OS] 동기화와 교착 상태
·
면접 준비/OS
공유 자원메모리나 파일 등의 자원 또는 전역 변수, 입출력장치를 두고 동시에 여러 개의 프로세스 또는 여러 개의 스레드가 실행된다면 일관성의 문제, 레이스 컨디션 문제가 발생할 수 있다.공유자원에 접근하는 코드 중 동시에 실행됐을 때 문제가 발생할 수 있는 영역을 임계 구역(critical section)이라고 한다. 레이스 컨디션위처럼 동시 다발적으로 실행되는 동안에는 언제나 임계 구역을 동시에 실행하지 않도록 유의해야 한다. 그렇지 않으면 데이터의 일관성이 손상이 되며 이를 레이스 컨디션상황 이라고 한다.이러한 레이스 컨디션을 제어하기 위해서 동기화의 개념이 필요하다.동기화(synchronized)실행 순서의 제어를 통해 프로세스 및 스레드를 올바른 순서로 실행해야 하며, 동시에 접근해서는 안되는 자..
자바(Java) - 쓰레드란? start와 run의차이
·
JAVA-기초/JAVA기본
Java는 단일 쓰레드 언어이기 때문에 한 번에 하나의 작업만 수행할 수 있습니다. 그러나 Java 비동기 처리를 위한 여러 가지 메커니즘을 제공합니다. 예를 들어, setTimeout 함수를 사용하여 지정된 시간이 지난 후에 함수를 실행할 수 있습니다. 이 경우에는 작업이 백그라운드에서 처리되고, 타이머가 만료되면 이벤트 루프가 해당 함수를 호출합니다. 또한 웹 워커(Web Workers)를 사용하여 백그라운드 스레드에서 실행되는 별도의 Java파일을 만들어 실행할 수 있습니다. 이 경우에는 워커 스레드에서 실행되는 코드와 메인 스레드에서 실행되는 코드가 분리되어 있습니다. 여기에 예시 코드가 있습니다: // setTimeout을 사용하여 비동기적으로 작업을 예약하는 예시 코드 console.log("..