Как операционная система управляет процессами - PullRequest
0 голосов
/ 12 сентября 2018

Как операционная система управляет разрешениями программы? Если вы пишете низкоуровневую программу без каких-либо системных вызовов, напрямую управляя процессором, то как операционная система ставит ставки, если программа непосредственно контролирует процессор?

Редактировать

Похоже, мой вопрос не очень понятен, я извиняюсь, я плохо говорю по-английски и пользуюсь переводчиком. В любом случае, меня интересует, как операционная система управляет разрешениями программ (например, пользователь root и т. Д.). Если программа написана на действительно низкоуровневом уровне без системных вызовов, то может ли она иметь полный доступ к процессору? Если вы хотите сказать, что он может делать все, что вы хотите, и в результате различные пользователи / разрешения, которые операционная система не имеет большого значения. Однако из первого полученного мной ответа я прочитал, что нельзя создавать полезные программы, которые работают без системных вызовов, поэтому программа не может напрямую взаимодействовать с оборудованием (я имею в виду, например, как BIOS взаимодействует с оборудованием)?

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Зависит от ОС.Что-то вроде MS-DOS, которая является только ОС и не мешает программе захватывать всю машину, по сути, позволяет программам запускаться с привилегиями ядра.

Любая ОС с защитой памяти, которая пытается сохранить отдельные процессыне наступая друг на друга, ядро ​​не позволяет процессам пользовательского пространства напрямую взаимодействовать с оборудованием ввода-вывода.

Может быть разрешен привилегированный процесс пользовательского пространства для отображения видеопамяти и / или памяти на карте памяти./ O регистрирует устройство в собственном адресном пространстве и в основном действует как драйвер устройства.(например, X-сервер под Linux.)

0 голосов
/ 12 сентября 2018

1) Невозможно иметь программу, которая не выполняет никаких системных вызовов.

2) Инструкции, управляющие работой процессора, должны выполняться в режиме ядра.

3) Единственный способ войти в режим ядра - через исключение (включая системные вызовы).Управляя обработкой исключений, операционная система предотвращает злонамеренный доступ.

Если программа написана на действительно низкоуровневом уровне без системных вызовов, то может ли она иметь полный доступ к процессору?

В современной системе это невозможно.Системный вызов будет выполняться в фоновом режиме, нравится вам это или нет.

...