Я только что закончил курс по операционным системам, и определение операционной системы мне все еще не ясно. Любая операционная система сама по себе использует ресурсы, такие как процессор и память? Например, алгоритм планирования должен использовать некоторую вычислительную мощность для сравнения задач, чтобы увидеть, какая из них выполняется первой, и любая структура данных, в которой хранятся задачи, занимает место.
Кроме того, понимание того, что делать с виртуальной памятью, должно включать вычисления, которые потребляют ресурсы, верно?
Гипотетически говоря, если бы компьютер с одной программой и без операционной системы запускал программу, то программа бы выполнилась быстрее, чем на том же компьютере, но с операционной системой. Это правда?
EDIT: Я согласен, что курс был полным дерьмом, в целях развлечения вот определение ОС, которое нам дали
Что такое операционные системы? • Несколько возможных определений 1. Код, который предоставляет {Microsoft, Apple, сообщество Linux, Google} 2. Код, от которого вы зависите, но который вы не писали 3. Код, который работает в привилегированном режиме 4. Код, который заставляет что-то работать 5. Код, который заставляет что-то зависеть (довольно циничное определение) 6. И многие другие...
Что такое ОС • Абстракция – предоставление соответствующего интерфейса для приложений, работающих на компьютере, для доступа к ресурсам этого компьютера – многое зависит от того, как мы определяем «соответствующий» • Способ решения различных проблем – производительность во времени – производительность в пространстве – совместное использование и управление ресурсами – отказоустойчивость – безопасность – конкурентоспособность
Это издевательство над учебникомнам пришлось потратить более 100 долларов, определяет операционные системы как «это то программное обеспечение, от которого зависит почти все остальное. Это все еще неопределенно, но этот термин используется в отрасли довольно туманно».
решение1
Потребляет ли сама операционная система ресурсы (помимо места, на котором она установлена)?
Да.
Я только что закончил курс по операционным системам, но определение операционной системы мне все еще неясно.
На низком уровне операционная система ничем не отличается от любой другой программы; в конечном счете, это не более чем набор инструкций ЦП. Единственное отличие в том, что инструкции ОС делают что-то (более или менее) иное, чем инструкции программы.
Лучший способ описать ОС — этометапрограмма. То есть, вместо того, чтобыделать что-то, программа позволяетдругойпрограммы, чтобы что-то сделать.
Потребляет ли сама операционная система такие ресурсы, как процессор и память?
Да, конечно.
Например, алгоритм планирования должен использовать некоторую вычислительную мощность для сравнения задач, чтобы определить, какая из них выполняется первой, а структура данных, в которой хранятся задачи, занимает много места.
Именно так. Функции ОС — это просто кучи инструкций ЦП, и, как функции в пользовательской программе, они занимают место и должны выполняться на ЦП.
Кроме того, понимание того, что делать с виртуальной памятью, должно включать вычисления, которые потребляют ресурсы, верно?
Естественно.
Гипотетически говоря, если бы компьютер с одной программой и без операционной системы запускал программу, то программа бы выполнилась быстрее, чем на том же компьютере, но с операционной системой. Это правда?
Немного.
Помните, что процессоры очень быстры и могут выполнятьмногоинструкции за короткий промежуток времени. Более того, операционные системы были разработаны и тщательно настроены, чтобы быть максимально оптимальными, поэтому они используют как можно меньше ресурсов ЦП и памяти (по крайней мере, теоретически). Таким образом, алгоритмы, которые они используют для таких вещей, как планирование, управление памятью, переключение задач, управление оборудованием и т. д., используют относительно мало ресурсов. Вы можете увидеть это в диспетчере задач; когда нет запущенных программ и ОС урезана до минимума, то будет использоваться очень мало памяти, а ЦП будет работать на «0%». (Опять же, мы говорим теоретически; например, Windows в последнее время «раздувается», так что это может больше не относиться к ней.)
решение2
Если вы только что закончили курс по операционным системам, вам следует попросить вернуть вам деньги. Ваш вопрос настолько наивен, что я не могу поверить, что вы не троллите ради решения домашнего задания.
Современный взгляд на ОС — это набор поставщиков услуг, которые приложения могут использовать для доступа к ресурсам на компьютере, таким как память, ЦП и устройства ввода-вывода. Где именно проходит граница между ОС и приложением — вопрос религиозный (см. дебаты между Эндрю Таненбаумом и Линусом Торвальдсом).
Современные операционные системы служат для представления изолированных абстракций машин приложениям, например, ваше приложение не может получить доступ к памяти, используемой моим приложением. Чтобы сделать это безопасным и надежным способом, критический код для управления абстракцией обычно изолируется в так называемом ядре ОС. Опять же, граница между тем, что идет в ядре, и тем, что является общей библиотекой пользовательского пространства, открыта для обсуждения.
Серьёзно, если подобные вещи не рассматривались в курсе по ОС, то что же тогда вообще было?