Автор: Пользователь скрыл имя, 11 Января 2012 в 21:28, лекция
Мы не станем рассматривать самый низший уровень этой схемы – аппаратное обеспечение, а начнем на ступеньку выше – с посредника, находящегося между аппаратным обеспечением и медицинской программой, называемого операционной системой. Большинство из вас знакомо с двумя из операционных систем – Windows и MS DOS. Как вы увидите далее, это не единственные и не самые лучшие ОС, хотя и наиболее распространенные.
Более подробно о функциях DOS Вы сможете прочитать в специально литературе.
Операционная система MS DOS предоставляет пользователю некоторый интерфейс для работы с оборудованием (см. рис.), однако большинство программ, написанных для MS DOS, не пользуются системными функциями за исключением файловой системы. Такой на первый взгляд неразумный подход обусловлен рядом причин. Наиболее существенная из них – то, что реализация функций работы с оборудованием в MS DOS достаточно куцая, и не использует всех возможностей аппаратуры. Например, при выводе текста на экран отсутствует возможность работы с цветом, а скорость последовательного порта RS-232 ограничена 9600 бод. По существу, в MS DOS не реализовано ничего, кроме файловой системы. Вторая причина – это низкая скорость работы системных функций. Так вывод точки на графический экран с помощью функции BIOS происходит на 2 порядка медленнее (!) чем при прямой записи в видеопамять. Поэтому программирование “в обход” MS DOS очень распространено. Немаловажным фактором здесь является “открытость” MS DOS, при которой весь компьютер находится в полном распоряжении пользовательской программы.
Такая схема общения программы и компьютера имеет те преимущества, что с одной стороны программист из оборудования может выжать практически все его возможности как по функциям, так и по скорости, с другой стороны, надежность функционирования программы также полностью зависит от программиста. Чтобы понять недостатки этого подхода, давайте рассмотрим этапы разработки программ для MS DOS.
Наиболее существенными факторами при разработке коммерческой программы являются время, затраченное на её разработку и способность работать на всех совместимых компьютерах. Для медицинских приложений последний фактор не столь критичен, т.к. принято поставлять программный продукт (например, реанимационный монитор) вместе с компьютером, на котором он работает, при этом пользователь обычно лишается возможности запускать на компьютере другие программы кроме Вашей.
Как видите, разработка программы под MS DOS на 85% состоит из решения различных проблем с оборудованием, т.е. разработчик становится своего рода системным программистом, который должен иметь четкое и глубокое знание как операционной системы, так и аппаратного обеспечения. В результате решению конкретной задачи предшествует примерно годовая (!) подготовительная работа.
Многих этих недостатков лишена операционная система Windows, которая будет рассмотрена в следующих разделах.
Три уровня архитектуры Wundows: центральный (ядро, менеджер событий, интерфейс графического устройства, управление системными ресурсами), аппаратно-независимый уровень, уровень приложений.
…
С развитием сети Internet и таких направлений как телемедицина, медицинские базы данных удаленного доступа, различные информационные сервера, врачебные Internet-консультации и т.д., особую актуальность приобретает знание и умение работать в операционной системе, позволяющей, с одной стороны, обращаться к различным сервисам Internet, с другой - самому создавать Internet приложения. Большинство современных операционных систем обладают такими возможностями, однако мы остановимся на UNIX. Почему? Прежде всего потому, что это одна из наиболее удачных (в смысле построения) операционных систем. Дело в том что изначально её развитие держалось на энтузиазме программистов слабо связанных временными и финансовыми рамками. В результате чего было найдено и реализовано множество интересных и оптимальных с точки зрения функциональности идей. Даже существует поговорка: “Если вы не понимаете UNIX, вы должны будете заново изобрести его''. Опыт развития систем OS/2 и Windows NT отчасти подтверждает ее.
UNIX широко распространена на серверах Internet. Известен случай, когда Microsoft перекупила кампанию HotMail и попыталась заменить на её серверах UNIX системой Windows NT. Оказалось, что NT неспособна управиться с тем потоком данных, который спокойно обрабатывался UNIX.
Еще 2 немаловажные причины: в настоящее время наблюдается волна повышения интереса к этой ОС, и многие известные фирмы, например Sun или Corel, разрабатывают свои версии UNIX с набором программных пакетов для них. И наконец, в отличие от других ОС, существуют свободно распространяемые версии UNIX и программ под них, что немаловажно для российского пользователя.
Следует оговориться, что под названием UNIX на самом деле скрывается целый класс операционных систем, ведущих свою родословную от общего корня. Наиболее известны две ветви: System V (версия AT&T) и BSD (версия Калифорнийского университета в Беркли). Однако большинство современных версий включают в себя черты обеих ветвей.
В центре находится ядро системы (kernel). Ядро непосредственно взаимодействует с аппаратной частью компьютера, изолируя прикладные программы от особенностей ее архитектуры. Ядро имеет набор услуг, предоставляемых прикладным программам. К услугам ядра относятся операции ввода/вывода (открытия, чтения, записи и управления файлами), создания и управления процессами, их синхронизации и межпроцессного взаимодействия. Все приложения запрашивают услуги ядра посредством системных вызовов.
Второй уровень составляют приложения или задачи, как системные, определяющие функциональность системы, так и прикладные, обеспечивающие пользовательский интерфейс UNIX. Однако несмотря на внешнюю разнородность приложений, схемы их взаимодействия с ядром одинаковы.
Ядро обеспечивает базовую функциональность операционной системы: создает процессы и управляет ими, распределяет память и обеспечивает доступ к файлам и периферийным устройствам.
Взаимодействие прикладных задач с ядром происходит посредством стандартного интерфейса системных вызовов. Интерфейс системных вызовов представляет собой набор услуг ядра и определяет формат запросов на услуги. Процесс запрашивает услугу посредством системного вызова определенной процедуры ядра, внешне похожего на обычный вызов библиотечной функции (например open, read, close). Ядро от имени процесса выполняет запрос и возвращает процессу необходимые данные.
Ядро состоит из трех основных подсистем:
Файловая подсистема обеспечивает унифицированный интерфейс доступа к данным, расположенным на дисковых накопителях, и к периферийным устройствам. Одни и те же функции ореп(2), read(2), write(2) могут использоваться как при чтении или записи данных на диск, так и при выводе текста на принтер или терминал.