Реферат: Для выполнения на компьютере какой-либо программы необходимо, чтобы она имела доступ к ресурсам компьютера
1 Для выполнения на компьютере какой-либо программы необходимо, чтобы она имела доступ к ресурсам компьютера., операционная система — это администратор или менеджер ресурсов компьютера. Назначение операционной системы состоит в обеспечении пользователя программными средствами для использования ресурсов компьютера и эффективном разделении этих ресурсов между пользователями. Отсюда следует, что главными функциями операционной системы являются управление ресурсами компьютера и диспетчеризация или планирование этих ресурсов. Все программы, которые работают на компьютере под управлением операционной системы, называются пользовательскими программами. Совокупность пользовательских программ, которая предназначена для решения определенной задачи, называется приложением. Если операционная система одновременно может исполнять только одну пользовательскую программу, то она называется однопрогроммной или однопользовательской. Если же под управлением операционной системы могут одновременно выполняться несколько пользовательских программ, то такая операционная система называется мультипрограммной или многопользовательской. несколько типов операционных систем. Если операционная система может работать только на компьютере с одним процессором, то такая операционная система называется однопроцессорной. Если же операционная система может работать также и на компьютере, который содержит несколько процессоров, то такая операционная система называется мультипроцессорной. Следует делать различие между операционными системами, которые предназначены для обработки информации под управлением пользователя, и операционными системами, которые предназначены для управления объектами при помощи компьютера в реальном времени без участия пользователя.. Операционная система, предназначенная для работы в режиме реального времени, называется операционной системой реального времени. Главное отличие операционных систем реального времени заключается в их быстром реагировании на внешние события и надежности функционирования. Если пользователь, сидя у компьютера, будет только раздражен медленной или ненадежной работой операционной системы, то медленная или ненадежная работа операционной системы реального времени может вызвать поломку оборудования и аварию.2 В первых компьютерах в конце 40-х и до середины 50-х годов прошлого века программы непосредственно взаимодействовали с аппаратным обеспечением машины — операционных систем тогда еще не было. Программы в машинных кодах и данные загружались через устройство ввода данных (например, устройство ввода с перфокарт). Такой режим работы можно назвать последовательной обработкой данных. Все это сопровождалось массой неудобств, а выполнение пользовательской программы занимало слишком много времени. Для устранения этих недостатков были разработаны различные системные инструментальные программы. К ним относятся библиотеки функций, редакторы связей, загрузчики, отладчики и драйверы ввода-вывода, существующие в виде программного обеспечения, общедоступного для всех пользователей. В дальнейшем для повышения эффективности работы была предложена концепция пакетной операционной системы. Главная идея, лежащая в основе простых пакетных схем обработки, состоит в использовании программы, известной под названием монитор. Используя операционную систему такого типа, пользователь не имеет непосредственного доступа к машине. Вместо этого он передает свое задание на перфокартах или магнитной ленте оператору компьютера, который собирает разные задания в пакеты и помещает их в устройство ввода данных. Так информация передается монитору. Каждая программа составлена таким образом, что по завершении ее работы управление переходит к монитору, который автоматически загружает следующую программу. Задания в пакетах выстраиваются в очередь и выполняются без простоев максимально быстро. Кроме того, монитор помогает в подготовке программы к исполнению Но в первых операционных системах отсутствовали прерывания, которые придают системе большую гибкость при управлении ресурсами процессора. Но и под управлением простой пакетной операционной системы при автоматическом выполнении заданий процессору часто приходилось простаивать. Поэтому разработчикам пришлось устранять и этот недостаток. Аппаратная часть совершенствовалась и появлялись новые возможности для повышения производительности процессора. Значительно возросшие объемы оперативной памяти позволяли размещать в ней несколько пользовательских программ и появилась возможность исполнять их параллельно, переключаясь с одной программы на другую. Поэтому изменилась и операционная система — появился многозадачный режим. Такой режим является основным в современных операционных системах. решения проблем многозадачности потребовалось разработать аппаратное обеспечение, поддерживающее прерывания ввода-вывода, и прямой доступ к памяти. Используя эти возможности, процессор генерирует команду ввода-вывода для одного задания и переходит к другому на то время, пока контроллер устройства выполняет ввод-вывод. После завершения операции ввода-вывода процессор получает прерывание, и управление передается программе обработки прерываний из состава операционной системы. Затем операционная система передает Использование многозадачности в пакетной обработке приводило к существенному повышению эффективности использования компьютера. Однако пользователи, почувствовавшие вкус к работе с компьютером, стали настаивать на таком режиме, в котором они могли бы непосредственно взаимодействовать с компьютером. Это стало возможным при возросшем уровне аппаратного обеспечения, когда многозадачность позволяет процессору не только одновременно обрабатывать несколько заданий в пакетном режиме, но и применяется для обработки нескольких интерактивных заданий. Такой режим компьютера называют работой с разделением времени, потому что процессорное время распределяется между отдельными пользователями. В системе разделения времени несколько пользователей одновременно получают доступ к системе с помощью терминалов, а операционная система чередует исполнение программ каждого пользователя через малые промежутки времени. Принимая во внимание относительно медленную реакцию человека, время отклика компьютера с хорошо настроенной операционной системой будет почти незаметно для пользователя. С появлением разделения времени и многозадачности перед создателями операционных систем появилось много проблем. Если в памяти находится несколько заданий, их нужно защищать друг от друга, иначе одно задание может легко изменить данные другого задания. Если в интерактивном режиме работают несколько пользователей, то файловая система должна быть защищена, чтобы к каждому конкретному файлу доступ был только у определенных пользователей. Нужно разрешать конфликтные ситуации, возникающие при работе с различными ресурсами, например, при обращении к принтеру или устройству хранения данных нескольких пользователей одновременно, и еще много разных проблем. Все это потребовало разработки новых операционных систем.
3 Современные операционные системы отвечают требованиям постоянно развивающегося аппаратного и программного обеспечения. Они способны управлять работой многопроцессорных систем, высокоскоростных сетевых устройств и новейших запоминающих устройств, разнообразие типов которых постоянно увеличивается. Из приложений, оказавших значительное влияние на архитектуру операционных систем, следует выделить мультимедийные приложения, средства доступа к Internet, а также модель распределенных вычислений клиент/сервер. В экспериментальных и коммерческих операционных системах были опробованы самые разнообразные подходы и структурные компоненты, большинство из которых можно объединить в следующие категории: ^ архитектура микроядра; многопоточность; симметричная многопроцессорность; распределенные операционные системы; объектно-ориентированное построение. Отличительной особенностью большинства операционных систем на сегодняшний день является большое монолитное ядро. Ядро операционной системы обеспечивает большинство ее возможностей, включая планирование заданий, работу с файловой системой, сетевые функции, работу драйверов различных устройств, управление памятью и т.д. Обычно монолитное ядро реализуется как единый процесс, все элементы которого используют одно и то же адресное пространство. В архитектуре микроядра ядру отводится лишь несколько самых важных функций, в число которых входят работа с адресными пространствами, обеспечение взаимодействия между процессами и основное планирование. Работу других сервисов операционной системы обеспечивают процессы, которые иногда называют серверами. Эти процессы запускаются в пользовательском режиме и микроядро работает с ними так же, как и с другими приложениями. Такой подход позволяет разделить задачу разработки операционной системы на разработку ядра и разработку сервера. Серверы можно настраивать для требований конкретных приложений или среды. Выделение в структуре системы микроядра упрощает реализацию системы, обеспечивает ее гибкость, а также хорошо вписывается в распределенную среду. Фактически микроядро взаимодействует с локальным и удаленным сервером по одной и той же схеме, что упрощает построение распределенных систем. Многопоточность — это технология, при которой процесс, выполняющий приложение, разделяется на несколько одновременно выполняемых потоков. Разбивая приложение на несколько потоков, программист получает все преимущества модульности приложения и возможность управления связанными с приложением временными событиями. Многопоточность оказывается весьма полезной для приложений, выполняющих несколько независимых заданий, которые не требуют последовательного исполнения. Если в пределах одного и того же процесса обрабатываются несколько потоков, то при переключении между различными потоками непроизводительный расход ресурсов процессора меньше, чем при переключении между разными процессами. До недавнего времени все персональные компьютеры, рассчитанные на одного пользователя, и рабочие станции содержали один процессор общего назначения. В результате постоянного повышения требований к производительности и снижении стоимости микропроцессоров производители перешли к выпуску компьютеров с несколькими процессорами. Для повышения эффективности работы таких систем используется технология симметричной многопроцессорной обработки данных. При этом процессоры, соединенные между собой коммуникационной шиной или какой-нибудь другой схемой, совместно используют одну и ту же основную память и одни и те же устройства ввода-вывода. Операционная система должна поддерживать симметричную многопроцессорную обработку данных, распределяя процессы или потоки между всеми процессорами. При этом повышается надежность работы, так как отказ одного из процессоров не приведет к остановке компьютера, потому что все процессоры могут выполнять одни и те же функции. После такого отказа система продолжит свою работу, хотя производительность ее несколько снизится. Также легко повышать производительность системы, добавляя в систему дополнительные процессоры. Одним из последних новшеств в устройстве операционных систем стало использование объектно-ориентированных технологий. Объектно-ориентированная структура помогает навести порядок в процессе добавления к основному небольшому ядру дополнительных модулей. На уровне операционной системы объектно-ориентированная структура позволяет программистам настраивать операционную систему, не нарушая ее целостности. Кроме того, этот подход облегчает разработку распределенных инструментов и полноценных распределенных операционных систем
4 Наиболее популярной из однозадачных ОС является ОС DOS, которая впервые была выпущена в 1981 г. и называлась MS-DOS.
MS-DOS является однопрограммной системой, но имеет и некоторые элементы многопрограммности. Это, например, печать на принтере на фоне выполнения другой задачи. Достоинства MS-DOS: Используются унифицированные символы (*, ?) при работе с файлами. Поддержка иерархической файловой структуры. Возможность как последовательного, так и прямого доступа к содержимому файлов. Возможность создания в ОЗУ виртуальных дисков, что ускоряет обмен информацией. Возможность запуска фоновых задач Модульность структуры, что упрощает перенос системы на другие типы ПЭВМ. Недостатки: Полное отсутствие средств защиты от несанкционированного доступа к ресурсам компьютера и самой ОС. Отсутствие пользовательского интерфейса. ^ Состав MS-DOS.
Вывод: ОС получила название "дисковой", потому что изначально все ее элементы (модули) за исключением BIOS находятся на магнитных дисках. При этом на системном диске должны быть расположены: системный загрузчик ^ модуль расширения (io.sys) базовый модуль (msdos.sys) командный интерпретатор (command.com) файлы конфигурации (config.sys) файл автозагрузки (autoexec.bat) ^ Модульная структура MS-DOS значительно облегчает ее модификацию, т.е. она открыта для наращивания своих возможностей.
Уровни вложенности элементов MS-DOS.
На внутреннем уровне находятся программы, управляющие аппаратурой, а на внешнем - средства для организации диалога с пользователями. Основная часть MS-DOS - промежуточные уровни, которые управляют файловой системой, выполнением и взаимодействием программ, использованием памяти.
5 ^ Операционная оболочка Windows - это разработанная фирмой Microsoft надстройка над операционной системой DOS, обеспечивающая большое количество удобств для программистов и пользователей. Большинство пользователей компьютеров используют Windows и разнообразные прикладные программы под Windows в своей работе. Широчайшее распространение Microsoft Windows сделало ее фактическим стандартом для IBM. В ОС Windows гораздо лучше, по сравнению с другими ОС, налажено взаимодействие между пользователем и компьютером. Большинство повседневных задач выполняется с меньшими, чем когда-либо затратами времени. Решено также большинство проблем с распределением памяти. Встроенная сетевая поддержка делает тривиальной задачей надежный обмен информацией по сети. В Windows, предусмотрена возможность давать файлам длинные имена, что значительно облегчает работу пользователя. Поддержка в Windows стандарта "plug-and-play" упрощает модернизацию оборудования. Ярлыки помогают быстро обращаться к часто используемым файлам, программам и папкам. Большая часть всего этого достигнута без ущерба для производительности. А многие процессы, например печать, идут теперь гораздо быстрее благодаря 32-битному режиму и другим усовершенствованиям. В отличие от оболочек типа Norton Commander, Windows не только обеспечивает удобный и наглядный интерфейс для операций с файлами, дисками и т.д., но и предоставляет новые возможности для запускаемых в "родной" среде программ. Одна из основных целей разработчиков Windows – создание документированного интерфейса, резкое снижение требований к подготовке пользователя, упрощение работы. Следует также признать, что интерфейс Windows обладает массой достоинств. Предусмотрено все или почти все для удобной и безопасной работы, почти любую операцию можно выполнить множеством способов, а продуманная система подсказок, сообщений и предупреждений поддерживает пользователя в течение всего сеанса работы. Интерфейс, разработанный корпорацией Microsoft, является одним из лучших, и стал своеобразным эталоном для подражания. В Microsoft Windows программисту доступна вся мощь этого интерфейса - он избавляется от необходимости организовывать меню, работу с клавиатурой и мышью (достаточно воспользоваться стандартными средствами). Интерфейс с пользователем Windows является полным и цельным. В нем решены не только проблемы организации меню, но и все общение с пользователем организовано стандартными средствами. Основная идея создания Windows была высказана главой фирмы Microsoft, Биллом Гейтсом. Он рассматривает Windows как электронный письменный стол, где должно быть все, что есть на рабочем месте: книга для записей, блокнот, калькулятор, часы и т.д. и т.п. И точно так же на "письменном столе" Windows могут одновременно вводиться в действие несколько программ. 6 Операционная система UNIX – это набор программ, который управляеткомпьютером, осуществляет связь между пользователем и компьютером иобеспечивает инструментальными средствами, чтобы помочь выполнить работу.Разработанная, чтобы обеспечить легкость, эффективность и гибкостьпрограммного обеспечения, система UNIX имеет несколько полезных функций: ^ . основная цель системы - выполнять широкий спектр заданий и программ; . интерактивное окружение, которое позволяет связываться напрямую с компьютером и получать немедленно ответы на запросы и сообщения; ^ . многопользовательское окружение, которое позволяет разделять ресурсы компьютера с другими пользователями без уменьшения производительности. Этот метод называется разделением времени. Система UNIX взаимодействует с пользователями поочередно, но так ^ быстро, что, кажется, взаимодействие происходит со всеми пользователями одновременно; . многозадачное окружение, позволяющее пользователю выполнять более одного задания в одно и тоже время. В настоящее время существует множество ОС, построенных на ядре UNIX,такие как SCO Unix (Santa Cruz Operation), Novell UnixWare, InteractiveUnix, Linux, семейство BSD (BSDI, FreeBSD, NetBSD, OpenBSD), Solaris, AIX,IRIX, Digital Unix, HP-UX. Unix состоит из ядра с включенными в него драйверами и из утилит(внешних по отношению к ядру программ). Если надо изменить конфигурацию(добавить устройство, изменить порт или прерывание), то ядро пересобирают(перелинковывают) из обьектных модулей.В противоположность Unix'у Windows и OS/2 при загрузке фактически находу прилинковывают драйверы. При этом компактность собранного ядра иповторное использование общего кода на порядок ниже, чем у Unix. Крометого, при неизменной конфигурации системы ядро Unix без переделки(потребуется изменить только стартовую часть BIOS) может быть записан в ПЗУи выполняться не загружаясь в ОЗУ. Компактность кода особенно важна, т.к.ядро и драйверы никогда не покидают физическую оперативную память, не“свопятся” на диск.Unix - самая многоплатформенная OS. Переносимость программ с однойверсии Unix на другую ограничена. Неаккуратно написанная программа, не учитывающая различий в реализациях Unix, может потребовать серьезнойпеределки. Unix может использоваться как в качестве сервера, так и рабочейстанции. Система Unix хороша для квалифицированного (или желающего статьтаковым) администратора, т.к. требует знания принципов функционированияпроисходящих в нем процессов. Реальная многозадачность и жесткое разделениепамяти обеспечивают высокую надежность функционирования системы, хотя впроизводительности файл- и принт-сервисов Unix'ы уступают Netware. Недостаточная гибкость предоставления прав доступа пользователей кфайлам по сравнению с WindowsNT затрудняет организацию на уровне файловойсистемы группового доступа к данным (точнее, к файлам), что компенсируетсяпростотой реализации, а значит меньшими требованиями к аппаратуре. Впрочем,такие приложения, как SQL-сервер решают проблему группового доступа кданным своими силами. Практически все протоколы (правила обмена информацией в сети), накоторых основан Internet, были разработаны под Unix, в частности стекпротоколов TCP/IP придуман в университете Berkeley.Важным свойством Unix, которое приближает его к мэйнфреймам, является его многотерминальность, много пользователей могут одновременно запускатьпрограммы на одной Unix-машине. Если не требуется использовать графику,можно обойтись дешевыми текстовыми терминалами, подключенными по медленнымлиниям. В этом с ним конкурирует только VMS. Можно использовать играфические X-терминалы, когда на одном экране присутствуют окна процессов,выполняющихся на разных машинах. В номинации рабочих станций с Unix конкурируют MS Windows*, IBM OS/2,Macintosh и Acorn RISC-OS.Unix функционирует как на PC, так и на мощных рабочих станциях с RISC-процессорами, под Unix написаны действительно мощные САПР игеоинформационные системы. Своей масштабируемостью Unix из-за егомногоплатформенности на порядок превосходит любую другую операционнуюсистему.
7 В последнее время российские пользователи ПК все чаще и чаще стали говорить о Linux, как об операционной системе, способной в ближайшем будущем если не вытеснить с рынка Microsoft Windows, то полноценно заменить ее на большинстве домашних персональных компьютеров. Linux - очень простая, надежная и дружественная операционная система. Совершенствование и эволюция Linux продолжаются по сей день: новые версии ядра, новые оконные менеджеры и новое программное обеспечение для Linux появляются каждый месяц. Логическая структура Linux в значительной степени отличается от строения MS DOS или известной платформы Microsoft Windows, она наиболее близка к архитектуре другого класса операционных систем, а именно - систем семейства UNIX. Если рассматривать внутреннюю структуру Linux в сравнении с анатомиейMS Windows, различия становятся очевидны даже на первый взгляд. По умолчанию Windows устанавливается в один логический раздел диска с файловой таблицей FAT16, здесь хранится и ядро системы, отвечающее за процедуры ввода-вывода данных, и так называемая "оболочка" или shell (файл explorer.exe), определяющая интерпретацию команд и действий пользователя, и, собственно, файлы и библиотеки, формирующие оконный интерфейс Windows. Причем эти три составляющих системы настолько тесно интегрированы друг с другом, что при замене одной из них на аналогичный файл из другой версии Windows, вся система в целом работать не будет. Функции указанных элементов также в значительной степени смешаны между собой: например, некоторые процедуры по формированию интерфейса в Windows выполняет shell. Здесь же хранятся дополнительные системные утилиты, такие как дефрагментатор диска, сервер удаленного доступа, драйвера, а также множество служебных библиотек.,В том же самом разделе размещаются пользовательские файлы, и в этой же области система осуществляет свопинг - кэширование не умещающихся в оперативной памяти данных на диск. Иными словами, все компоненты платформы хранятся в одном разделе, что, естественно, не прибавляет ей надежности: достаточно любого незначительного повреждения таблицы данных, чтобы,привести Windows в неработоспособное состояние или испортить хранящуюся на диске полезную информацию. Вполне очевидно также и то, что изменить с помощью стандартных средств Windows внешний вид установленных по умолчанию окон не представляется возможным. Это вполне осуществимо методом замены имеющегося shell на другую оболочку, например, LiteStep, либо с помощью специальных утилит вроде WindowsBlinds, которые, загружаясь в фоновом режиме, занимают оперативную память и замедляют работу компьютера. Из характерных особенностей Linux необходимо перечислить следующие:поддержка национальных клавиатур, в том числе и русской, поддержкамножества файловых систем, среди которых, помимо собственной - EXT2FS, имеются FAT16, MINIX-1 и XENIX. Реализация программной поддержки FAT16позволяет непосредственно обращаться к гибким дискам MS DOS, а такжефайловым разделам DOS и Windows на винчестере. Имеется возможность работатьс сетевыми протоколами TCP/IP, PLIP, PPP и многими другими, в рамкахсетевых функций платформы реализован весь спектр клиентов и услуг Интернет:FTP, telnеt, NNTP, SMTP и POP3. Программы загружаются в память постранично,на диск кэшируются только те сегменты данных, которые не используютсясистемой в данный момент, что значительно ускоряет работу приложений.Возможно совместное обращение к страницам памяти разными программами в одини тот же момент времени, это позволяет избежать повторной загрузкиидентичных фрагментов информации в RAM и заметно экономит ресурсыкомпьютера. Как и Microsoft Windows, в Linux применяется системадинамических библиотек, иными словами, несколько приложений могутиспользовать в своей работе библиотеку, представленную на диске одним физическим файлом.
8 Системный вызов Систе?мный вы?зов (англ. system call) в программировании и вычислительной технике — обращение прикладной программы к ядру операционной системы для выполнения какой-либо операции. Современные операционные системы (ОС) предусматривают разделение времени между выполняющимися вычислительными процессами (многозадачность) и разделение полномочий, препятствующее исполняемым программам обращаться к данным других программ и оборудованию. Ядро ОС исполняется в привилегированном режиме работы процессора. Для выполнения межпроцессной операции или операции, требующей доступа к оборудованию, программа обращается к ядру, которое, в зависимости от полномочий вызывающего процесса, исполняет либо отказывает в исполнении такого вызова. С точки зрения программиста системный вызов обычно выглядит как вызов подпрограммы или функции из системной библиотеки. Однако системный вызов как частный случай вызова такой функции или подпрограммы следует отличать от более общего обращения к системной библиотеке, поскольку последнее может и не требовать выполнения привилегированных операций. Системные вызовы - это требование к ОС(ядру) произвести аппаратно\системно специфическую операцию, т.е. вызов функций непосредственно в ядре системы. Системный вызов - это требование к ОС (к ядру) произвести аппаратно/системно специфическую или привилегированную операцию. В Linux-1.2 были определены 140 системных вызовов. Такие вызовы, как close() реализованы в Linux libc. Эта реализация часто включает в себя макрос, который в конце концов вызывает syscall(). Параметры, передаваемые syscall-y - это номер системного вызова, перед которым ставятся требуемые аргументы. Номера системных вызовов можно найти в , а обновленные вместе с новой версией libc - в . Если появились новые системные вызовы, но их до сих пор нет в libc, вы можете использовать syscall(). Как пример, рассмотрим закрытие файла при помощи syscall-а (не советуем, однако): #include extern int syscall(int,...) int my_close(int filedescriptor) { return syscall(SYS_close, filedescriptor); } На i386 системные вызовы ограничены 5-ю аргументами кроме номера вызова из-за аппаратного числа регистров. На другой архитектуре вы можете поискать макрос _syscall в и там посмотреть сколько аргументов поддерживается у вас или $how many developers chose to support$. Макросами _syscall можно пользоваться вместо syscall(), но это не рекомендуется, поскольку макрос может развернуться в функцию, которая уже существует в библиотеке. Поэтому только ядреные хакеры имеют право поиграться с _syscall-ом :). Для демонстрации посмотрим на пример close(), использующий макрос _syscall. #include _syscall1 (int, close, int, filedescriptor); _syscall1 раскрывается в функцию close(), и мы получаем твикс: один close() в libc и один в нашей программе. Возвращаемое syscall()-ом (или _syscall-ом) значение есть -1, если вызов неудачен и 0 или больше в случае успеха. В случае неудачи ошибку можно определить по глобальной переменной errno. Приведем системные вызовы, возможные в BSD и SYS V, но не допустимые в LINUX: audit(), audition(), fchroot(), getauid(), getdents(), getmsg(), mincore(), poll(), putmsg(), setaudit(), setauid().
9 . Проце́сс — выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие. Компьютерная программа сама по себе это только пассивная совокупность инструкций, в то время как процесс — это непосредственное выполнение этих инструкций. Часто процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т. д. Создание процесса Простейшей операционной системе не требуется создание новых процессов, поскольку внутри них работает одна-единственная программа, запускаемая во время включения устройства. В более сложных системах надо создавать новые процессы. Обычно они создаются: При запуске ОС, При появлении запроса на создание процесса — происходит в случае, если работающий процесс создает новый процесс. Завершение процесса Завершение процесса происходит как: Обычный выход Выход по исключению или ошибке 10 Процесс-программа в стадии выполнения. Создание процесса- порождение процесса другим процессом. Типичные функции ядра ОС -создание и завершение процессом -планирование и диспетчеризация проыессов -переключение процессов -синхронизация и поддержка обмена инцормацией между процессами -организация управляющих блоков процессов Новый процесс в Windows создается вызовом функции CreateProcess функция CreateProcess возвращает ненулевое значение, если процесс был создан успешно. Процесс, который создает новый процесс, называется родительским по отношению к создаваемому процессу. По вызову функции ExitProcess завершаются все потоки процесса с кодом возврата, который является параметром этой функции. Кроме CreateProcess в Win32 есть около 100 функций управления процессами. В ОС UNIX с технической точки зрения новый процесс формируется следующим образом: текущий процесс выполняет системный запрос на создание нового процесса. Системный запрос заставляет ОС создать новый процесс. В UNIX существует только один системный запрос на создание нового процесса: fork. Этот запрос создает дубликат существующего процесса. Обычно дочерний процесс делает системный вызов execve для изменения своего образа памяти и запуска новой программы. Завершение процесса происходит вызовом exit. Также процесс может завершится в результате ошибки. В UNIX и Windows родительский и дочерний процесс имеют собственные различные адресные пространства. Диспетчеризацией заведует ос которая реализует определенное стратегическое распределение ресурсов между процессами. Программный код может выполняться либо в контексте самого процесса, способы вызова в разных ос по-разному, программное прерывание, вызов супервизора.
11. Управление процессами в ОС семейства UNIX Каждому процессу соответствует контекст, в котором он выполняется. Этот контекст включает пользовательский контекст (т. е. содержимое виртуального адресного пространства, сегментов программного кода, данных, стека, разделяемых сегментов и сегментов файлов, отображаемых в виртуальную память), содержимое аппаратных регистров — регистровый контекст (регистр счетчика команд, регистр состояния процессора, регистр указателя стека и регистры общего назначения), а также структуры данных ядра (контекст системного уровня), связанные с этим процессом. Контекст процесса системного уровня в ОС UNIX состоит из «статической» и «динамических» частей. Для каждого процесса имеется одна статическая часть контекста системного уровня и переменное число динамических частей. Статическая часть контекста процесса системного уровня включает следующее: Идентификатор процесса (PID) Уникальный номер, идентифицирующий процесс. По сути, это номер строки в таблице процессов — специальной внутренней структуре ядра операционной системы, хранящей информацию о процессах. Идентификатор родительского процесса (PPID) В операционной системе UNIX процессы выстраиваются в иерархию — новый процесс может быть создан только одним из уже существующих процессов, который выступает для него родительским. Состояние процесса Каждый процесс в любой момент времени находится в одном из нескольких определенных состояний В UNIX перевод процессов в состояние зомби служит для корректного завершения группы процессов, освобождения ресурсов и т. п. Идентификаторы пользователя Идентификатор пользователя и группы, от имени которых исполняется процесс, используются операционной системой для определения границ доступа для процесса. Приоритет процесса Число, используемое при планировании исполнения процесса в операционной системе. Таблица дескрипторов открытых файлов Список структур ядра, описывающий все файлы, открытые этим процессом для ввода-вывода. Динамическая часть контекста процесса — это один или несколько стеков, которые используются процессом при выполнении в режиме пользователя и в режиме ядра (в процессе прерываний и системных вызовов).
12. Потоки – определение, виды многопоточности Поток определяет последовательность исполнения кода в процессе. При запуске программы ОС всегда создает один поток – главный. Именно в нем программа начинает свое выполнение. В зависимости от типа программы и настроек компилятора в главном потоке может выполняться функция main, WinMain, _tmain или функция, заданная пользователем. Главный поток живет до тех пор, пока самая первая функция в стеке не завершила свое выполнение. Создание потока в Windows происходит с помощью вызова API фукнции: HANDLE CreateThread(PSECURITY_ATTRIBUTES psa, DWORD cbStack, PTHREAD_START_ROUTINE pfnStartAddr, PVOID pvParam, DWORD tdwCreate, PDWORD pdwThreadID); Многопото́чность — свойство платформы или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся «параллельно», то есть без предписанного порядка во времени. Виды многопоточности: Переключательная многопоточность. Основа – резидентные программы. Программа размещалась в памяти компьютера вплоть до перезагрузки системы, и управление ей передавалось каким-либо заранее согласованным способом. Совместная многопоточность. Передача управления от одной программы другой. При этом возвращение управления – это проблема выполняемой программы. Возможность блокировки, при которой аварийно завершаются ВСЕ программы. Вытесняющая многопоточность. ОС централизованно выделяет всем запущенным приложениям определенный квант времени для выполнения в соответствии с приоритетом приложения. Реальная возможность работы нескольких приложений в ПСЕВДОПАРАЛЛЕЛЬНОМ режиме. "Зависание" одного приложения не является крахом для всей системы и оставшихся приложений.
13.Архитектура микроядерных ОС, их свойства В микроядерной архитектуре реализована минимальная часть функций ядра операционной системы. Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов, или системных вызовов, реализующих базовые сервисы операционной системы. Сюда относятся: управление адресным пространством оперативной памяти. управление адресным пространством виртуальной памяти. управление процессами и тредами (нитями, потоками). средства межпроцессной коммуникации. Все остальные сервисы ОС, в классических монолитных ядрах предоставляемые непосредственно ядром, в микроядерных архитектурах реализуются в адресном пространстве пользователя и называются сервисами. Примерами таких сервисов, выносимых в пространство пользователя в микроядерных архитектурах, являются сетевые сервисы, файловая система, драйверы. Главным в микроядре являются механизмы межпроцессного взаимодействия (IPC). Микроядро в своем идеальном проявлении состоит только из средств IPC (взаимодействие приложений с ядром тоже осуществляется при помощи тех же средств) Преимущества микроядерных систем: Самое главное преимущество - чрезвычайно высокая степень модульности и расширяемости. Любые возможности операционной системы определяются лишь приложением пользовательского режима. Стабильность и безопасность. Эти два свойства системы зависят только от микроядра, небольшое количество кода которого во первых позволяет тщательно отладить код, а во вторых доказать безопасность микроядра формальными, математическими методами. Остальные компоненты не являются критическими, и их можно легко перезапустить в случае сбоя. Простота программирования. Обычно программирование под какую-либо систему, и программирование этой же самой системы сильно различаются (это связано с тем, что "внутри" монолитного ядра применяются свои собственные функции выделения памяти, взаимодействия между различными частями ядра и пр., но для приложений механизм системных вызовов предоставляет совершенно другие функции). В случае же микроядра, хоть драйвер, хоть бухгалтерская программа равны в своих правах и могут использовать одни и те же механизмы. В то же время микроядерная архитектура операционной системы вносит дополнительные накладные расходы, связанные с передачей сообщений, что отрицательно влияет на производительность. 14 . Потоки в ОС семейства Windows Классический проц
еще рефераты
Еще работы по разное
Реферат по разное
Ростатическая эмиссия испускание электронов проводящими жидкими и твёрдыми телами под действием внешнего электрического поля достаточно высокой напряжённости
17 Сентября 2013
Реферат по разное
Проблема лямблиоза в педиатрической практике
17 Сентября 2013
Реферат по разное
Изобретение электрической лампочки. Её устройство Изобретатель электрической лампочки
17 Сентября 2013
Реферат по разное
Е. М. Дианов академик ран, директор Научного центра волоконной оптики ран в. В. Осико
17 Сентября 2013