Публикации по теме 'xv6'


Первый процесс XV6 г.
Перед стартом В этом разделе мы поговорим о том, как после подготовки нескольких ресурсов для операционных систем (распределители страниц, таблица страниц ядра, таблица процессов и т. Д.) Создается и работает первый процесс. Шаги создания первого процесса следующие: Выделить структуру процесса (контекст, каталог таблицы страниц, указатель стека ядра…) Создайте таблицу страниц для пространства ядра Выделить страницу для кода инициализации пользователя Настроить фрейм-ловушку для iret..

Вопросы по теме 'xv6'

Не удается загрузить xv6 после добавления некоторых кодов в ядро
Я только немного изменил ядро ​​xv6 для поддержки разделяемой памяти. После компиляции не могу загрузить его под qemu. Он просто останавливается при «загрузке с диска ...». Но с загрузчиком ничего не делал. Кто-нибудь может сказать мне, что...
145 просмотров
xv6
schedule 09.09.2021

Аппаратное и программное обеспечение сохраняет во время переключения контекста в xv6
Я изучаю переключатель контекста xv6 в книге Операционные системы: три простых элемента . Я не могу полностью понять раздел Сохранение и восстановление контекста в Глава 6 (стр. 8). Почему существует два типа сохранения / восстановления...
300 просмотров

реализация функции спин-блокировки в xv6, чтобы иметь возможность использовать API-интерфейсы на уровне пользователя.
В xv6 есть файл spinlock.c для создания спин-блокировки для использования ядром. Но мне нужно реализовать API-интерфейсы спин-блокировки для использования на уровне пользователя. Например, я реализую sp_create() для создания спин-блокировки на...
735 просмотров
schedule 01.03.2022

Для чего используется операционная система XV6?
Я проходил онлайн-курсы по операционным системам, и я слышал, как они говорили, что операционная система XV6 может быть использована для изучения реализации операционных систем, вот и все. Но после того, как я поискал в Интернете, не хватило ресурсов,...
1193 просмотров

qemu запрос образа диска
Я пытаюсь запустить qemu с xv6, но у меня возникли проблемы с компиляцией xv6. какие типы образов дисков поддерживает qemu. например, Qemu принимает файлы .ISO? Я попытался загрузить FreeBSD, но QEMU сообщает об отсутствии загрузочного устройства.
165 просмотров
schedule 26.04.2022

xv6 rev6 странный код в syscall()
Любой может понять, почему используются следующие ifs, строки 3279-3285 в коде xv6-rev6: int num; num = proc−>tf−>eax; if (num >= 0 && num < SYS_open && syscalls[num]) { proc−>tf−>eax = syscalls[num](); } else...
542 просмотров
schedule 22.07.2023

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

Почему в XV6 константа PHYSTOP определена как 0xE000000?
Насколько я знаю, в XV6 PHYSTOP должен быть 1 ГБ. В этом случае значение PHYSTOP должно быть 0x40000000 (1 ГБ), а не 0xE000000 (224 МБ), как показано в http://pdos.csail.mit.edu/6.828/2014/xv6/xv6-rev8.pdf : 0203 #define PHYSTOP 0xE000000 //...
1305 просмотров
schedule 25.05.2023

Почему планировщик xv6 вызывает sti () в начале каждого цикла?
В сопутствующей книге говорится Причина для периодического включения прерываний на простаивающем процессоре заключается в том, что может не быть RUNNABLE процесса, потому что процессы (например, оболочка) ожидают ввода-вывода; если планировщик...
1382 просмотров
schedule 17.07.2023

Миграция процессов в ОС xv6
Я хочу написать программу, которая может сохранять состояние процесса, когда он выходит из файла, и другую программу, чтобы перезагрузить состояние этого процесса и запустить его, если он оставлен в ОС xv6. Что-то вроде сохранения состояния...
221 просмотров

Выполнение остановленного процесса в XV6
Я написал два новых системных вызова и добавил их в ядро ​​ОС xv6. Таким образом, используя один системный вызов, я могу сохранить состояние процесса, а используя другой, я могу перезагрузить предыдущее состояние и продолжить. проблема связана с...
121 просмотров
schedule 12.11.2022

Глобально статический int в модуле самовызова
(Отказ от ответственности: это домашнее задание) Я создаю программу-оболочку, назовем ее fancysh. Я пытаюсь добавить функциональность PATH (и других env vars) в свою оболочку, пока все хорошо. Мой наивный подход состоял в том, чтобы хранить все...
50 просмотров
schedule 24.07.2023

Состояние гонки в xv6
Я новичок в области ОС и пытаюсь изучить это, взломав xv6. Я сомневаюсь, что мы можем решить, прежде чем делать вызов fork, запускать ли родительский или дочерний с помощью системных вызовов. аргумент в пространство ядра и решить, запускать ли...
436 просмотров
schedule 20.12.2022

Зарегистрировать указатель при создании потоков в xv6
Я хочу создать поток в xv6 с помощью системного вызова "clone()", но меня не устраивает создание стека, поскольку, если я хочу создать поток, мне нужно создать соответствующий указатель регистра, такой как ebp, esp , эп. Но я не знаю, как установить...
1220 просмотров
schedule 23.09.2023

Невозможно сделать cd в xv6 при использовании эмулятора QEMU
Я установил эмулятор qemu с os xv6. Я пытаюсь скомпилировать проект, написанный на c, который включает: makefile, 2 файла c и заголовок. Я открыл терминал qemu и пытался сменить каталог с помощью команды cd, чтобы перейти к файлам, и он сказал мне:...
358 просмотров
schedule 04.11.2022

xv6: чтение тиков напрямую, не снимая блокировку тиков?
Я работаю над заданием в курсе операционной системы на Xv6 . Мне нужно реализовать структуру состояния данных для процесса для времени его создания, времени завершения, времени сна и т. Д. На данный момент я решил использовать переменную ticks...
1245 просмотров
schedule 20.05.2023

Расположение определения open() в xv6
У меня есть задание, которое требует от меня разработки собственного системного вызова. Для этого я хотел бы просмотреть определение открытого системного вызова. Под этим я подразумеваю, что хотел бы увидеть, как определяется фактический open(const...
1032 просмотров
schedule 07.05.2023

XV6 make file выдает нераспознанный режим эмуляции: -N при попытке сделать xv6 в Windows
$ make qemu-nox ld -m -N -e main -Ttext 0 -o _cat cat.o ulib.o usys.o printf.o umalloc.o C:\MinGW\bin\ld.exe: unrecognised emulation mode: -N Supported emulations: i386pe make: *** [_cat] Error 1 Я продолжаю получать эту ошибку, хотя установил...
72 просмотров
schedule 01.11.2022

Реализация FCFS для xv6
В настоящее время для моего проекта в колледже я пытаюсь реализовать алгоритмы планирования FCFS и Priority для xv6. Я закончил с приоритетом и теперь пытаюсь заставить работать FCFS. Ниже приведены изменения, которые я внес в код: void...
603 просмотров
schedule 04.05.2023