Вопросы с тегом «operating-systems»

Вопросы о принципах программного обеспечения, которое взаимодействует между оборудованием и приложениями.

50
Что происходит с содержимым кеша при переключении контекста?

В многоядерном процессоре, что происходит с содержимым кэша ядра (скажем, L1), когда происходит переключение контекста в этом кэше? Зависит ли поведение от архитектуры или от всех производителей...

33
В чем разница между потоками уровня пользователя и потоками уровня ядра?

Прочитав несколько источников, я все еще не понимаю, какие темы нужны пользователям и ядру. Особенно: Потоки могут существовать как на уровне пользователя, так и на уровне ядра. В чем разница между уровнем пользователя и уровнем ядра?...

32
Внедряет ли операционная система свой собственный машинный код при открытии программы?

Я изучаю ЦП и знаю, как он читает программу из памяти и выполняет ее инструкции. Я также понимаю, что ОС разделяет программы в процессах, а затем чередует каждую из них так быстро, что вы думаете, что они выполняются одновременно, но на самом деле каждая программа запускается отдельно в ЦП. Но если...

28
Генерация комбинаций из набора пар без повторения элементов

У меня есть набор пар. Каждая пара имеет форму (x, y), так что x, y принадлежат целым числам из диапазона [0,n). Итак, если n равно 4, то у меня есть следующие пары: (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) У меня уже есть пары. Теперь я должен построить комбинацию, используя n/2пары, чтобы ни одно из...

20
Каковы примеры несоответствия и неполноты в Unix / C?

В знаменитом эссе Ричарда Габриэля « Лучше хуже» он противопоставляет карикатурные версии философии дизайна MIT / Stanford (Lisp) и New Jersey (C / Unix) по осям простоты, правильности, согласованности и полноты. Он приводит пример «проблемы с загрузкой ПК» ( обсуждаемой в другом месте Джошем...

20
Какие темы делятся вообще?

Ну, это общий вопрос. И если кто-то захочет сделать это специфичным для реализации, тогда я предпочту Unix-связанные вещи. Но для начала нужно знать следующие проблемы в целом: Я прочитал один процесс может иметь несколько потоков. Несколько потоков одного процесса делят вещи между ними. Я хочу...

19
Как операционная система создает энтропию для случайных семян?

В Linux файлы /dev/randomи/dev/urandom файлы являются блокирующими и неблокирующими (соответственно) источниками псевдослучайных байтов. Их можно читать как обычные файлы: $ hexdump /dev/random 0000000 28eb d9e7 44bb 1ac9 d06f b943 f904 8ffa 0000010 5652 1f08 ccb8 9ee2 d85c 7c6b ddb2 bcbe 0000020...

19
Совместное планирование приостанавливает процессы, когда они выполняют операцию ввода-вывода?

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

18
Умное управление памятью с постоянными операциями времени?

Давайте рассмотрим сегмент памяти (размер которого может увеличиваться или уменьшаться, как файл, когда это необходимо), в котором вы можете выполнить две основные операции выделения памяти, включающие блоки фиксированного размера: выделение одного блока освобождение ранее выделенного блока,...

17
Как операционная система может работать на том же чипе, которым она должна управлять?

Из моих чтений об операционных системах (чтение основного материала в Википедии, технических сайтах и ​​т. Д.) Я узнал, что операционная система - это программа, которая позволяет программам и приложениям эффективно и безопасно взаимодействовать с оборудованием. Однако я не совсем понимаю, как...

17
Какие гарантии предоставляют «мягкие» операционные системы реального времени

Я думаю, что знаю, что такое «жесткая» операционная система реального времени. Это операционная система с планировщиком, которая предоставляет контракт с программистом приложения. Приложение предоставляет крайний срок для каждого запроса на выделение ресурсов. Если запросы крайнего срока...

14
Нахождение максимального XOR двух чисел в интервале: можем ли мы сделать лучше, чем квадратичное?

Предположим, нам даны два числа и и мы хотим найти для .lllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r Наивный алгоритм просто проверяет все возможные пары; например, в ruby ​​у нас будет: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if (i ^ j > max) max...

14
Каковы потенциальные подводные камни при наличии минимального ядра, которое запускает управляемый код?

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

14
Производительность микроядра против монолитного ядра

Микроядро реализует все драйверы как программы пользовательского пространства и реализует основные функции, такие как IPC, в самом ядре. Однако монолитное ядро ​​реализует драйверы как часть ядра (например, работает в режиме ядра). Я читал некоторые утверждения, что микроядра работают медленнее,...

13
Все системные вызовы блокируются?

Я читал статью, которая описывает переключение между пользовательским пространством и пространством ядра, которое происходит при системном вызове. В статье говорится Приложение ожидает завершения системного вызова, прежде чем возобновить выполнение в пользовательском режиме. Теперь до сих пор я...

13
Раздувание памяти в ОС

Некоторые гипервизоры оптимизируют использование памяти с помощью метода, который называется «всплывающим списком» (по крайней мере, так его называет KVM), этот метод дедуплицирует память между виртуальными машинами и устанавливает общие страницы только для чтения с копированием при записи. Это...

13
Как процессор находит код ядра после прерывания?

Когда происходит прерывание, процессор прерывает текущий процесс и вызывает код ядра для обработки прерывания. Как процессор знает, куда войти в ядро? Я понимаю, что есть обработчики прерываний, которые могут быть установлены для каждой линии прерывания. Но поскольку процессор выполняет только...

12
Какова цель потоков M: N (Hybrid)?

Другими словами, какие преимущества имеет гибридная многопоточность по сравнению с 1: 1 (только для ядра) и N: 1 (только для пользователя)? Это продолжение к тому, В чем разница между потоками уровня пользователя и потоками уровня...

12
Управление пространством подкачки во время подкачки по требованию

Следующее сомнение, что я наткнулся при выполнении домашнего задания OS - однако, это кажется более концепция на основе, чем вопрос кодирования простого, поэтому ИМХО я не думаю, что домашние задания теги подходят для этого. В чистых схемах требуют поискового вызова для нескольких процессов,...

11
Зачем хранить собственные и родительские ссылки (. И ..) в записи каталога?

Рассмотрим файловую систему, нацеленную на некоторые встроенные устройства, которая делает чуть больше, чем хранит файлы в иерархической структуре каталогов. В этой файловой системе отсутствуют многие операции, которые вы можете использовать в таких системах, как Unix и Windows (например, ее права...