인터럽트

개발/Java

Java Thread (version 2)

Java Thread 자바 스레드는 JVM에서 User Thread를 생성할 때 시스템 콜을 통해서 커널에서 생성된 커널 스레드와 1:1로 매핑이 되어 최종적으로 커널에서 관리된다. JVM에서 스레드를 생성할 때마다 커널에서 자바 스레드와 대응하는 커널 스레드를 생성한다. 자바에서는 플랫폼 스레드로 정의되어 있다. 즉 OS 플랫폼에 따라 JVM이 사용자 스레드를 매핑하게 된다. 스레드 생성은 Thread 클래스를 상속하는 방법과 Runnable 인터페이스(함수형 인터페이스)를 구현하는 방법이 있다. Thread 실행 및 종료 자바 스레드는 OS 스케줄러에 의해 실행 순서가 결정되며 스레드 실행 시점을 JVM에서 제어할 수 없다. 새로운 스레드는 현재 스레드와 독립적으로 실행되고 최대 한번 시작할 수 있고..

OS

인터럽트

인터럽트 오늘날의 운영체제는 입출력 시 인터럽트를 이용해 시스템의 효율을 높인다. 인터럽트 처리는 입출력뿐만 아니라 시스템을 보호하는 데 매우 중요한 작업이다. 오늘날의 프로그래밍에서는 버튼이 눌렸는지 안 눌렸는지 주기적으로 확인하는 대신 버튼이 눌리면 프로세스에 알려주는데, 이를 이벤트 드리븐(Event Driven)이라고 한다. 운영체제에서의 입출력 처리도 이와 똑같다. 과거에는 입출력장치가 거의 없었으므로 입출력을 요청하면 운영체제가 주기적으로 입출력장치를 직접 확인해서 처리했다. 이러한 방식을 폴링이라고 한다. 하지만 다양한 입출력장치가 개발되어 운영체제가 모든 입출력을 관리하기 어려워지자 이벤트 드리븐 방식과 마찬가지로 입출력을 요청하고 입출력이 완료되면 이벤트를 발생시켜 이 사실을 알리게 되었..

Debin
'인터럽트' 태그의 글 목록