나는 운영 체제의 내부 작동에 대해 완전히 단서가 없지만 많은 기능의 대략적인 동작을 추측 할 수 있습니다. 그래도 알아낼 수없는 것은 멀티 태스킹입니다.
이론적으로 운영 체제는 CPU가 실행하는 다양한 프로그램에 대해 작은 간격으로 시간을 관리합니다. 그러나 이것이 실제로 어떻게 작동 하는지는 명확하지 않습니다 .
운영 체제에서 프로그램을 시작하려고한다고 가정하십시오. 머신 코드는 특정 주소에서 시작하여 RAM 어딘가에로드됩니다. 그런 다음 해당 주소로 점프해야 코드가 실행될 수 있다고 생각합니다. 그러나 이런 식으로 OS는 내가 되돌아 갈 때까지 제어권을 다시 얻지 못합니다.
기본적 으로이 작업을 수행하는 두 가지 방법을 상상할 수 있지만 실제로는 적합하지 않은 것 같습니다.
운영 체제는 직접 수행하지 않고 수행하려는 기계 명령어를 읽고 에뮬레이션 할 수 있습니다. 이것이 어떻게 작동하는지 모르기 때문에 의도적으로 모호합니다.하지만 프로그램 속도가 상당히 느려질 것 같습니다.
또는 운영 체제가 시스템 호출을 기다릴 수 있습니다. 그 순간 그것은 통제력을 회복하고 내가 얼마나 오랫동안 달리고 있는지 확인하고 시분할을 할 수 있습니다. 이것은 작동 할 수 있지만 시스템 호출을 포함하지 않고 오랫동안 모든 것을 중단시키는 긴 계산을 할 수 있기 때문에 신뢰할 수없는 것 같습니다.
따라서 메커니즘이 잘 작동하지 않는 것 같습니다. 멀티 태스킹은 실제로 어떻게 수행됩니까?
interrupt
INT
명령 을 실행할 방법이 없습니다 . 뭔가 아직도 나에게 신비