OSDev

для всех
Текущее время: 20 апр 2024, 16:43

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 190 ]  На страницу Пред.  1 ... 13, 14, 15, 16, 17, 18, 19  След.
Автор Сообщение
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 05 сен 2013, 15:00 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Функции правильные, может быть в программе есть взаимные блокировки. У меня подобная процедура выглядит вот так, для Intel синтаксиса
Код:
static inline int asm_InterlockedExchange(int volatile* Destination, int Exchange)
{
   asm volatile("xchg [%1],%0"
      : "+a" (Exchange): "r" (Destination) : "memory");
   return Exchange;
}

Можешь добавить цикл ожидания и будет тебе спин-лок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 05 сен 2013, 16:08 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Спин-блокировка при борьбе за ресурс на одном ядре крайне нерациональна. В классическом мьютексе используется ожидание при доступе к занятому объекту/структуре. Не хотите использовать ожидание, попробуйте хотя бы вместо простого зацикливания дополнительно делать SwitchToNext (Yield). Можно попробовать отдавать управление и напрямую захватившему объект потоку, но это чревато различными неприятными эффектами типа беспричинного игнора отдельных готовых к выполнению потоков. Использование очереди ожидания прежде всего хорошо тем, что позволяет установить справедливый (не хаотичный) порядок доступа к объекту.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 19 окт 2013, 01:43 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
В версии 2013.10.18 читаем через ACPI о связи прерываний PCI с APIC. Поддержка ACPI очень сокращённая, поэтому интересны результаты работоспособности ОС на разных компьютерах с процессором x86_64.
На сайте проекта загрузочный CD-ROM теперь выпускается в двух вариантах - минимальном и максимальном. Для тестирования ядра достаточно минимального варианта. В минимальном варианте есть только командная консоль и демка matrix. В максимальном варианте добавлены binutils и gcc.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 02 авг 2014, 00:01 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Выложил для скачивания компилятор GCC 4.8.3 и Binutils работающие в Windows MinGW, производящие формат Linux ELF 32 и 64. В пакет входят заголовочные файлы и библиотеки от Ubuntu Linux 14.04. В папке home есть скрипты, с помощью которых произведены GCC и Binutils из исходников.
https://yadi.sk/d/ufl76MuWYoR3z

Выложил Express OS с поддержкой ACPI через библиотеку Intel ACPICA. В консоль добавлена команда shutdown, выключающая компьютер через ACPI, просьба потестировать. Проверено в эмуляторах Bochs, VMware, и на двух настольных компьютерах.
http://code.google.com/p/express-os


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 02 авг 2014, 00:40 
Аватара пользователя

Зарегистрирован: 28 май 2012, 23:44
Сообщения: 237
Откуда: Санкт-Петербург
Himik писал(а):
В консоль добавлена команда shutdown, выключающая компьютер через ACPI, просьба потестировать.

Athlon64 на EpoX 8KDA3i вырубился.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 02 авг 2014, 01:29 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Freeman писал(а):
Athlon64 на EpoX 8KDA3i вырубился.
Хорошо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 02 авг 2014, 03:02 
Аватара пользователя

Зарегистрирован: 28 май 2012, 23:44
Сообщения: 237
Откуда: Санкт-Петербург
О, про ноут вспомнил. На ноуте HP Pavilion g7 вообще не загрузилась, последняя строчка:
Код:
Module PCAT/pcat.so failed.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 02 авг 2014, 03:12 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Это с CD-ROM?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 02 авг 2014, 03:41 
Аватара пользователя

Зарегистрирован: 28 май 2012, 23:44
Сообщения: 237
Откуда: Санкт-Петербург
Да.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 02 авг 2014, 12:37 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
К сожалению у меня нет эмулятора ноутбука :-)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 190 ]  На страницу Пред.  1 ... 13, 14, 15, 16, 17, 18, 19  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB