Приложения
3.2 Applications
Ядро операционной системы похоже на авиадиспетчера в аэропорту, а приложения — на самолеты, находящиеся под его управлением . Ядро решает, какая программа получает какие блоки памяти, оно запускает и завершает работу приложений, а также управляет отображением текста или графики на мониторе.
Приложения делают запросы к ядру и взамен получают ресурсы, такие как память, ЦП и дисковое пространство. Если два приложения запрашивают один и тот же ресурс, ядро решает, какое из них получит его, и в некоторых случаях убивает другое приложение, чтобы сохранить остальную часть системы и предотвратить сбой.
Ядро также абстрагирует некоторые сложные детали от приложения. Например, приложение не знает, находится ли блок дискового хранилища на твердотельном диске, на вращающемся металлическом жестком диске или даже на общем сетевом ресурсе. Приложения должны следовать только интерфейсу прикладного программирования (API) ядра, и поэтому им не нужно беспокоиться о деталях реализации. Каждое приложение ведет себя так, как будто оно имеет большой блок памяти в системе; ядро поддерживает эту иллюзию, переназначая меньшие блоки памяти, разделяя блоки памяти с другими приложениями или даже выгружая нетронутые блоки на диск.
Ядро также обрабатывает переключение приложений, процесс, известный как многозадачность . Компьютерная система имеет небольшое количество центральных процессоров (ЦП) и ограниченный объем памяти. Ядро позаботится о том, чтобы выгрузить одну задачу и загрузить новую, если требования превышают доступные ресурсы. Когда одна задача выполняется в течение определенного периода времени, ЦП приостанавливает ее выполнение, чтобы могла выполняться другая. Если компьютер выполняет несколько задач одновременно, ядро решает, когда переключать фокус между задачами. При быстром переключении задач кажется, что компьютер делает много дел одновременно.
Когда мы, как пользователи, думаем о приложениях, мы склонны думать о текстовых процессорах, веб-браузерах и почтовых клиентах, однако существует большое разнообразие типов приложений. Ядро не делает различий между пользовательским приложением, сетевой службой, взаимодействующей с удаленным компьютером, или внутренней задачей. Отсюда мы получаем абстракцию, называемую процессом . Процесс — это всего лишь одна задача, которая загружается и отслеживается ядром. Приложению может даже потребоваться несколько процессов для работы, поэтому ядро заботится о запуске процессов, запуске и остановке их по запросу и распределении системных ресурсов.
Last updated