![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
AD |
![]()
Сообщение
#1
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Хотел бы задать вопрос для того, чтобы вспомнить позабытые со времен университета вещи. Чем плохи мьютексы? Какие есть альтернативы мьютексам? Хотелось бы вкратце вспомнить! За ссылки на какие-то краткие описания буду благодарен, а вот на толстые учебники, спасибо, но не надо. Просто хочется освежить знания.
Сообщение отредактировал AD - 18.11.2011, 8:30 |
|
|
![]() |
Iron Bug |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
Я бы их назвал аппаратным средством, а не системным. просто юзер не может напрямую юзать аппаратные средства. доступ к некоторым реализован через системные интерфейсы и юзерские API. поэтому для программиста верхнего (по сравнению с системным) уровня аппаратных средств, как таковых, не существует. есть только системные. скажем так, даже драйвер не может напрямую управлять железом. для этого у него есть интерфейсы ядра и они далеко не всегда означают непосредственные манипуляции с железом. а сейчас и вовсе идёт тенденция к созданию некоего общего фреймворка, чтобы драйвер вообще не имел дела непосредственно с железом, только с обобщёнными функциями этого фреймворка. сюда относится и интелловская идея "продвинутого" биоса, который запускает ось наподобие виртуальной машиены, и вендозный KMDF. Сообщение отредактировал Iron Bug - 18.11.2011, 10:50 |
|
|
BRE |
![]()
Сообщение
#3
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
просто юзер не может напрямую юзать аппаратные средства. доступ к некоторым реализован через системные интерфейсы и юзерские API. поэтому для программиста верхнего (по сравнению с системным) уровня аппаратных средств, как таковых, не существует. есть только системные. Если выбросить ОС, то системных средств у программиста не останется, а аппаратные будут все еще доступны. ![]() С помощью ассемблера программист верхнего уровня может получить доступ к определенным аппаратным средствам. Сделать все те же атомарные операции. Сообщение отредактировал BRE - 18.11.2011, 11:02 |
|
|
Iron Bug |
![]()
Сообщение
#4
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
просто юзер не может напрямую юзать аппаратные средства. доступ к некоторым реализован через системные интерфейсы и юзерские API. поэтому для программиста верхнего (по сравнению с системным) уровня аппаратных средств, как таковых, не существует. есть только системные. Если выбросить ОС, то системных средств у программиста не останется, а аппаратные будут все еще доступны. ![]() С помощью ассемблера программист верхнего уровня может получить доступ к определенным аппаратным средствам. Сделать все те же атомарные операции. последняя такая система на моей памяти была Windows 98: она позволяла получить доступ к портам. более современные системы НЕ ПОЗВОЛЯЮТ юзеру работать напрямую с железом никоим образом. потому что это просто нарушит работу системы и безопасность. железо постоянно меняется. причём очень быстро. даже системные программисты не имеют дел непосредственно с железом. на то есть специальные системные вызовы. иначе был бы полный капец разработке: учитывать особенности каждой конфигурации железа и все изменения протоколов по всем устройствам просто нереально. система для того и существует, чтобы избавлять юзера от всего этого геморроя. конечно, можно снести систему. и работать с железом. писать код прямо в память при старте (а комп без софта умеет только грузить бутрекорд на старте и больше нихрена, ну, есть ещё базовые функции биос, но они актуальны только для получения общей информации о присутствующем железе). но будет очень грустно. особенно потому, что даже система НЕ РАБОТАЕТ напрямую с регистрами процессора. в процессор зашивается микрокод, который сам выполняет множество операций, упрощая и значительно ускоряя работу системы. вообще говоря, при разном микрокоде это будут совершенно разные устройства. просто я каждый день с такими вещами дело имею. тут всё не так просто, как кажется юзеру верхнего уровня. Сообщение отредактировал Iron Bug - 18.11.2011, 11:50 |
|
|
BRE |
![]()
Сообщение
#5
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
последняя такая система на моей памяти была Windows 98: она позволяла получить доступ к портам. более современные системы НЕ ПОЗВОЛЯЮТ юзеру работать напрямую с железом никоим образом. потому что это просто нарушит работу системы и безопасность. Ну и что? Зачем мне порты для реализации атомарных операций? Другое дело нужно ли это? Я завязал с ассемблером, когда Пеньтиумы покорили мир, мне стало не интересно соревноваться с компиляторами в оптимизации кода. А до этого я занимался разработкой на ассемблере системного софта, который работал в защищенном режиме. Это времена MSDOS и Win3.1. железо постоянно меняется. причём очень быстро. даже системные программисты не имеют дел непосредственно с железом. на то есть специальные системные вызовы. иначе был бы полный капец разработке: учитывать особенности каждой конфигурации железа и все изменения протоколов по всем устройствам просто нереально. система для того и существует, чтобы избавлять юзера от всего этого геморроя. А это вторая причина по которой использовать ассемблер сейчас я считаю делом малоперспективным. ![]() конечно, можно снести систему. и работать с железом. Если это узкоспециализированное железо, выпущенное штучной партией, то так и приходится делать. А можно взять тот-же форт. а комп без софта умеет только грузить бутрекорд на старте и больше нихрена Не не, это делает BIOS. Сама железка может начать выполнять инструкции из памяти с определенного адрес. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 8:17 |