Мьютексы, Для того, чтобы вспомнить и улучшить знания |
Здравствуйте, гость ( Вход | Регистрация )
Мьютексы, Для того, чтобы вспомнить и улучшить знания |
AD |
18.11.2011, 8:30
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Хотел бы задать вопрос для того, чтобы вспомнить позабытые со времен университета вещи. Чем плохи мьютексы? Какие есть альтернативы мьютексам? Хотелось бы вкратце вспомнить! За ссылки на какие-то краткие описания буду благодарен, а вот на толстые учебники, спасибо, но не надо. Просто хочется освежить знания.
Сообщение отредактировал AD - 18.11.2011, 8:30 |
|
|
Iron Bug |
18.11.2011, 12:16
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
атомарность - не обращение к железу. вообще, ассемблер - это просто протокол общения с процом. некоторые возможности открыты для юзера. когда речь не идёт о вводе-выводе.
это делает BIOS. ну да. просто я имею в виду без оси. биос поставляет производитель железа, это не относится к оси. без него вообще ничего не будет работать: только выдирать флэшку и перепрошивать программатором смысл-то был в том, что юзер в принципе не должен управлять железом. а если он очень хочет, то нужно писать сначала драйвер кернел мода(в этой области я уже не умею говорить по-русски ), потом, возможно, драйвер юзерского уровня - для повышения эффективности использования и программирования политик и интерфейсов. и уже потом юзать вызовы своего драйвера верхнего уровня. плюс современные операционки накладывают массу требований на драйверы. то есть, кроме собственных эгоистических попыток управлять какими-то ножками контроллера ты должен обеспечить общесистемные требования по распределению питания, по всяческим слипмодам в четырёх режимах, по загрузке-выгрузке-паузе и прочие такие вещи, которые изрядно отравляют жизнь и отнимают время при написании дров хотя, до сих пор есть любители писания своих осей. меня тут как раз недавно спрашивали в личке про системное программирование. да, пишут люди свои оси. но многое (в частности, микрокоды прошивки процессоров) тащат из линюкса. ибо это неподъёмный труд для одного человека. а напрямую с железом уже давно никто не работает. ну, кроме тех, кто, как мы, разрабатывает своё железо с нуля. вот у меня работа такая: запускать новые железяки, взаимодействуя с прошивкой какого-то контроллера на шине. а если ещё и пишешь прошивку, то тут уже сам себе режиссёр: сам пишешь загрузчик, сам пишешь приложение, сам его грузишь с конкретной флэшки по конкретному протоколу для данного чипа, сам распределяешь режимы питания. но это именно уникальная разработка конкретных девайсов. почти любой достаточно сложный электронный девайс - маленький прототип компа. там есть процессор(контроллер), память, клоки, ввод-вывод. просто в компе этого всего гораздо больше и программировать это гораздо более сложно. это уже глубокий хардварный оффтоп Сообщение отредактировал Iron Bug - 18.11.2011, 12:20 |
|
|
BRE |
18.11.2011, 12:38
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
атомарность - не обращение к железу. Это ты начала Цитата атомарные операии - тоже системный механизм чисто ассемблерная фича, даже ещё более приближенная к железу, нежели мьютексы. Но на самом деле, можно считать и так. Когда ты пишешь ассемблерную инструкцию, то ты говоришь напрямую железке (процессору) что ему нужно сделать. Поэтому, с помощью определенных инструкций для аппаратуры можно выполнить атомарную операцию. ну да. просто я имею в виду без оси. биос поставляет производитель железа, это не относится к оси. без него вообще ничего не будет работать: только выдирать флэшку и перепрошивать программатором BIOS это обычное программное обеспечение, которое пишет программист, и если вместо него написать свое и прошить его в ROM, то оно спокойно будет работать. смысл-то был в том, что юзер в принципе не должен управлять железом. а если он очень хочет, то нужно писать сначала драйвер кернел мода(в этой области я уже не умею говорить по-русски ), потом, возможно, драйвер юзерского уровня - для повышения эффективности использования и программирования политик и интерфейсов. и уже потом юзать вызовы своего драйвера верхнего уровня. Это ты говоришь про то как это устроено в массовом секторе, но есть железки у которых нет ОС и нет такого понятия как модуль ядра в принципе. Для таких железок тоже пишут программное обеспечение. |
|
|
Текстовая версия | Сейчас: 25.11.2024, 16:32 |