Open anuu0916 opened 1 year ago
인터럽트란 무엇인가요?
프로그램을 실행하는 도중 예기치 않은 상황((ex. 입출력, 우선 순위 연산 등)이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 작업을 복귀하는 것
인터럽트의 동작 순서에 대해 설명해주세요.
인터럽트의 우선순위에 대해 말해주세요. 하드웨어>소프트웨어 인터럽트 외부>내부 인터럽트
인터럽트가 왜 필요한가요?
입출력 연산은 CPU 명령수행 속도보다 현저히 느리기 때문이다. 상대적으로 속도가 너무 느린 입출력 연산을 CPU가 기다리게 된다면 효율이 너무 떨어지게 된다. 그래서 운영체제는 연산 결과가 나올 때까지 CPU에 다른 일을 수행하도록 하고, 연산 작업이 끝나면 작업 완료를 알려 CPU가 다시 해당 작업을 이어서 할 수 있도록 한다. CPU의 수행능력을 극대화하는데 꼭 필요한 기능이다.
인터럽트와 시스템 콜의 차이점은 무엇인가요?
인터럽트는 하드웨어 이벤트로 인해 프로그램의 흐름을 중단하고 운영체제로 제어를 넘기는 것이고, 시스템 콜은 프로세스가 운영체제의 서비스를 이용하기 위해 호출하는 인터페이스입니다. 인터럽트는 하드웨어와 운영체제 간의 상호작용을 담당하며, 시스템 콜은 프로세스와 운영체제 간의 상호작용을 담당합니다.
☑️ 시스템콜 : 운영체제 서비스를 접근하기 위한 수단(커널에 자원 사용을 요청)
시스템 콜의 주요 세 가지 기능 사용자 모드에 있는 응용 프로그램이 커널의 기능을 사용할 수 있도록 한다 = 운영체제 서비스에 접근을 할 수 있게 해 준다. 시스템 호출을 하면 사용자 모드에서 커널 모드로 바뀐다. 커널에서 시스템 호출의 작업이 끝나면 사용자 모드로 돌아간다. ☑️ 인터럽트 : 프로그램이 컴퓨터에서 동작하고 있을 때, 입출력 연산 혹은 예외상황이 발생하여 처리가 필요할 때
cf. 시스템 콜과 인터럽트 동작 방식 : 2가지 방식 중 하나를 사용
폴링 방식 : 상태를 주기적으로 검사하여 조건을 만족하면 처리를 하는 방식 인터럽트 방식 : 특정 신호를 발생시켜 운영체제에 처리를 요구하는 방식