Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вывести.doc
Скачиваний:
10
Добавлен:
01.03.2025
Размер:
1.42 Mб
Скачать
  • битовая строка - упорядоченная последовательность разрядов, которая может начинаться с любого разряда любого байта и содержать до 4Гбит.

    Отрицательные числа хранятся в памяти в дополнительном коде.

    Форматы данных математического сопроцессора (FPU):

    1. одинарная точность

    31

    30

    23

    22

    0

    знак

    порядок

    мантисса

    1. двойная точность

    63

    62

    52

    51

    0

    знак

    порядок

    мантисса

    1. повышенная точность

    79

    78

    64

    63

    0

    знак

    порядок

    мантисса

    При обращении к оперативной памяти 32-разрядные микропроцессоры используют указатели:

        1. «близкий» указатель – это 32-разрядный логический адрес, являющийся смещением внутри сегмента,

        2. «дальний» указатель – это 48-разрядный логический адрес, состоящий из 16-разрядного селектора сегмента и 32-разрядного смещения.

    1. Отличительные особенности архитектуры 32-разрядного мп.

    Все 32-разрядные процессоры могут работать в двух режимах: реальном и защищенном. Основные архитектурные особенности микропроцессора:

        1. в архитектуре применено RISC-ядро, позволяющее наиболее часто встречающиеся инструкции выполнять за 1 такт;

        2. наличие встроенного арифметического сопроцессора;

        3. наличие внутренней кэш-памяти и предусмотрены все необходимые средства для построения памяти с двухуровневым кэшированием;

        4. увеличена очередь команд до 16 байт;

        5. ускорено выполнение операций как в целочисленном АЛУ, так и в блоке арифметического сопроцессора;

        6. используется умножение тактовой частоты системной платы (с увеличенной частотой работают только внутренние схемы микропроцессора, все внешние по отношению к микропроцессору схемы, в том числе расположенные и на системной плате, работают с обычной частотой).

    Концепция RISC-микропроцессора сводится к следующим положениям:

    • выполнение всех (или, по крайней мере, 75% команд) за один цикл;

    • стандартная длина всех команд;

    • малое число команд;

    • малое количество форматов команд;

    • малое число способов адресации (преимущественно регистровая и непосредственная);

    • все команды, за исключением «Чтения» и «Записи», используют внутрипроцессорные межрегистровые пересылки;

    • относительно большой процессорный файл РОН.

    В состав структурной схемы микропроцессора входят

          1. целочисленное устройство,

          2. устройство с плавающей точкой,

          3. устройство управления,

          4. диспетчер памяти,

          5. устройство команд,

          6. кэш-память,

          7. шинное устройство.

    В состав целочисленного устройства входят АЛУ, 32-разрядные РОН и многоразрядный сдвигатель, используемый при арифметических и циклических сдвигах, операциях умножения и деления. Команды сложения, вычитания, сдвига и логические операции выполняются за один такт. Содержимое РОН используется устройством сегментации для формирования адресов.

    Устройство с плавающей точкой по структуре и программному обеспечению соответствует математическому сопроцессору.

    Диспетчер памяти состоит из устройства сегментации и страничного преобразования и обеспечивает двухступенчатое формирование физического адреса ячейки памяти сначала в пределах сегмента, а затем в пределах страницы. Диспетчер поддерживает реальный и защищенный режимы работы микропроцессора.

    Шинное устройство поддерживает обмен микропроцессора с памятью, контроллерами ввода-вывода и другими активными внешними устройствами.

    Схемы управления имеют два типа выводов:

    1. сигналы управления циклами магистрали,

    2. сигналы управления состоянием микропроцессора и взаимодействием микропроцессора с другими активными устройствами магистрали.

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

    Устройство команд содержит блок предвыборки для создания очереди команд, готовых к выполнению, и дешифратор команд. Блок предвыборки позволяет с опережением получить команды из памяти перед их фактическим исполнением. Дешифратор команд получает команды от блока предвыборки и преобразует их в управляющие сигналы. В дешифраторе одновременно обрабатываются коды операций, байты адресации и смещения. Выходные сигналы дешифратора определяют аппаратные микрокоманды для устройства сегментации, целочисленного устройства и устройства с плавающей точкой.

    Блок микропрограммного управления формирует управляющие микропрограммы.

    1. Структура микропроцессорной системы и основные режимы ее работы – выполнение основной программы, обслуживание прерываний, прямой доступ к памяти

    Практически любая развитая микропроцессорная система (поддерживает три основных режима обмена по магистрали:

    программный обмен информацией;

    обмен с использованием прерываний;

    обмен с использованием прямого доступа к памяти (ПДП).

    Программный обмен информацией является основным в любой микропроцессорной системе. Он предусмотрен всегда, без него невозможны другие режимы обмена. В этом режиме процессор является единоличным хозяином системной магистрали. Все операции (циклы) обмена информацией в данном случае инициируются только процессором, все они выполняются строго в порядке, предписанном исполняемой программой.

    Процессор читает (выбирает) из памяти коды команд и исполняет их, читая данные из памяти или из устройства ввода/вывода, обрабатывая их, записывая данные в память или передавая их в устройство ввода/вывода. Путь процессора по программе может быть линейным, циклическим, может содержать переходы (прыжки), но он всегда непрерывен и полностью находится под контролем процессора. Ни на какие внешние события, не связанные с программой, процессор не реагирует. Все сигналы на магистрали в данном случае контролируются процессором.

    Обмен по прерываниям используется тогда, когда необходима реакция микропроцессорной системы на какое-то внешнее событие, на приход внешнего сигнала. В случае компьютера внешним событием может быть, например, нажатие на клавишу клавиатуры или приход по локальной сети пакета данных. Компьютер должен реагировать на это, соответственно, выводом символа на экран или же чтением и обработкой принятого по сети пакета.

    В общем случае организовать реакцию на внешнее событие можно тремя различными путями:

    с помощью постоянного программного контроля факта наступления события (так называемый метод опроса флага);

    с помощью прерывания, то есть насильственного перевода процессора с выполнения текущей программы на выполнение экстренно необходимой программы;

    с помощью прямого доступа к памяти, то есть без участия процессора при его отключении от системной магистрали.

    Первый случай с опросом флага реализуется в микропроцессорной системе постоянным чтением информации процессором из устройства ввода/вывода, связанного с тем внешним устройством, на поведение которого необходимо срочно реагировать.

    Во втором случае в режиме прерывания процессор, получив запрос прерывания от внешнего устройства, заканчивает выполнение текущей команды и переходит к программе обработки прерывания. Закончив выполнение программы обработки прерывания, он возвращается к прерванной программе с той точки, где его прервали.

    Здесь важно то, что вся работа, как и в случае программного режима, осуществляется самим процессором, внешнее событие просто временно отвлекает его.

    Естественно, никакого ускорения работы системы прерывание не дает. Его применение позволяет только отказаться от постоянного опроса флага внешнего события и временно, до наступления внешнего события, занять процессор выполнением каких-то других задач.

    Прямой доступ к памяти (ПДП) — это режим, принципиально отличающийся от двух ранее рассмотренных режимов тем, что обмен по системной шине идет без участия процессора. Внешнее устройство, требующее обслуживания, сигнализирует процессору, что режим ПДП необходим, в ответ на это процессор заканчивает выполнение текущей команды и отключается от всех шин, сигнализируя запросившему устройству, что обмен в режиме ПДП можно начинать.

    Операция ПДП сводится к пересылке информации из устройства ввода/вывода в память или же из памяти в устройство ввода/вывода. Когда пересылка информации будет закончена, процессор вновь возвращается к прерванной программе, продолжая ее с той точки, где его прервали. Это похоже на режим обслуживания прерываний, но в данном случае процессор не участвует в обмене.

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

    Рисунок - Информационные потоки в режиме ПДП.

    В принципе контроллер ПДП может входить в состав устройства ввода/вывода, которому необходим режим ПДП или даже в состав нескольких устройств ввода/вывода.

    1. Иерархическая организация памяти микро-эвм.

    Система памяти является функциональной частью микроЭВМ, предназначенной для записи, хранения и выдачи информации.

    Полотно 1354

    Рисунок – Типы памяти в микроЭВМ

    Память имеет иерархическую (многоуровневую) структуру. В микроЭВМ выделяют следующие уровни памяти:

    1. Сверхоперативное запоминающее устройство, или регистровая память микропроцессора представляет собой совокупность регистров общего назначения микропроцессора. Операции с этим типом памяти являются наиболее быстродействующими.

    2. Внутренняя кэш-память – это оперативное запоминающее устройство, встроенное непосредственно в микропроцессор. Внутренняя кэш-память работает на тактовой частоте микропроцессора.

    3. Внешняя кэш-память предназначена для уменьшения количества обращений к другим менее быстродействующим устройствам памяти, устанавливается на системной плате и работает на частоте шины.

    4. Оперативная память предназначена для хранения информации (программ и данных), непосредственно участвующей в вычислительном процессе в текущий интервал времени. Оперативная память используется для оперативного обмена информацией между микропроцессором, внешней памятью и периферийными подсистемами.

    5. Постоянное ЗУ используется для хранения таблиц, констант, кодов команд программ, стандартных подпрограмм, например подпрограмм BIOS, DOS.

    6. Внешнее ЗУ используется для длительного хранения больших объемов информации.

    По месту расположения ЗУ разделяют на процессорные, внутренние и внешние. Наиболее скоростные виды памяти (регистры, кэш-память первого уровня) обычно размещают на общем кристалле с центральным микропроцессором, а регистры общего назначения считаются частью микропроцессора. Внутреннюю память образуют ЗУ, расположенные на системной плате. К внутренней памяти относят оперативную память, а также кэш-память второго и последующего уровней (кэш-память второго уровня может также размещаться на кристалле микропроцессора). Медленные ЗУ большой емкости называют внешней памятью, так как к ядру микроЭВМ они подключаются аналогично устройствам ввода-вывода.

    Запоминающие устройства характеризуются следующими основными параметрами:

    1. Разрядность данных (определяется разрядностью ячейки памяти),

    2. Информационная емкость (определяется количеством бит или байт информации, которое может храниться в ЗУ),

    • Быстродействие ЗУ. Для количественной оценки быстродействия используют три параметра:время доступа, время обращения, скорость передачи.

    1. Система ввода-вывода микроЭвм. Общие принципы построения систем ввода-вывода. Организация обмена информацией с периферийными устройствами

    Система ввода-вывода (СВВ) предназначена для выполнения следующих функций:

    1. ввод,

    2. вывод,

    3. долговременное хранение информации,

    4. обработка информации,

    5. управление этой обработкой.

    В состав системы ввода-вывода входят:

    1. периферийные устройства,

    2. контроллеры (адаптеры) периферийных устройств, отвечающие за управление периферийными устройствами и обмен между ними и ядром ЭВМ,

    3. системные шины и их контроллеры,

    4. интерфейсы,

    5. контроллеры прерываний и прямого доступа к памяти (ПДП).

    Структура систем ввода-вывода представляет собой совокупность взаимосвязанных внутренних и внешних интерфейсов (шин), посредством которых все устройства (модули) объединены в единую систему, называемую компьютером. Причем каждая шина имеет определенную скорость передачи информации, и к ней подсоединяются устройства с соответствующим быстродействием. Все шины, как правило, могут работать параллельно, обеспечивая высокую производительность вычислительной системы. Шины соединяются между собой с помощью специальных устройств – мостов. Кроме того, в структуру систем ввода-вывода входят устройства управления шинами и схемы организации процессов передачи информации при различных режимах ввода-вывода.

    В ЭВМ применяются три режима ввода/вывода:

    1. программно-управляемый ввод-вывод (называемый также программным вводом-выводом),

    2. ввод-вывод по прерываниям,

    3. прямой доступ к памяти (ПДП).

    Первый из них характеризуется тем, что инициирование и управление вводом-выводом осуществляется программой, выполняемой процессором, а внешние устройства играют сравнительно пассивную роль и сигнализируют только о своем состоянии, в частности, о готовности к операциям ввода/вывода. Во втором режиме ввод-вывод инициируется не процессором, а внешним устройством, генерирующим специальный сигнал прерывания. Реагируя на этот сигнал готовности устройства к передаче данных, процессор передает управление подпрограмме обслуживания устройства, вызвавшего прерывание. Действия, выполняемые этой подпрограммой, определяются пользователем, а непосредственными операциями ввода-вывода управляет процессор. Наконец, в режиме прямого доступа к памяти, который используется, когда пропускной способности процессора недостаточно, действия процессора приостанавливаются, он отключается от системной шины и не участвует в передачах данных между основной памятью и быстродействующими внешними устройствами.

    1. Основные функции операционных систем:

    1. Прием от пользователя (или от оператора системы) заданий, или команд, сфор­мулированных на соответствующем языке, и их обработка. Задания могут пе­редаваться в виде текстовых директив (команд) оператора или в форме указа­ний, выполняемых с помощью манипулятора (например, с помощью мыши). Эти команды связаны, прежде всего, с запуском (приостановкой, остановкой) программ, с операциями над файлами (получить перечень файлов в текущем каталоге, создать, переименовать, скопировать, переместить тот или иной файл и др.), хотя имеются и иные команды.

    2. Загрузка в оперативную память подлежащих исполнению программ.

    3. Распределение памяти, а в большинстве современных систем и организация виртуальной памяти.

    4. Запуск программы (передача ей управления, в результате чего процессор ис­полняет программу).

    5. Идентификация всех программ и данных.

    6. Прием и исполнение различных запросов от выполняющихся приложений. Операционная система умеет выполнять очень большое количество системных функций (сервисов), которые могут быть запрошены из выполняющейся про­граммы. Обращение к этим сервисам осуществляется по соответствующим пра­вилам, которые и определяют интерфейс прикладного программирования (Ap­plication Program Interface, API) этой операционной системы.

    7. Обслуживание всех операций ввода-вывода.

    8. Обеспечение работы систем управлений файлами (СУФ) и/или систем управления базами данных (СУБД), что позволяет резко увеличить эффективность всего программного обеспечения.

    9. Обеспечение режима мультипрограммирования, то есть организация параллель­ного выполнения двух или более программ на одном процессоре, создающая видимость их одновременного исполнения.

    10. Планирование и диспетчеризация задач в соответствии с заданными стратеги­ей и дисциплинами обслуживания.

    11. Организация механизмов обмена сообщениями и данными между выполняю­щимися программами.

    12. Для сетевых операционных систем характерной является функция обеспече­ния взаимодействия связанных между собой компьютеров.

    13. Защита одной программы от влияния другой, обеспечение сохранности дан­ных, защита самой операционной системы от исполняющихся на компьютере приложений.

    14. Аутентификация и авторизация пользователей (для большинства диалоговых операционных систем). Под аутентификацией понимается процедура проверки имени пользователя и его пароля на соответствие тем значениям, которые хра­нятся в его учетной записи. Очевидно, что если входное имя (login) пользовате­ля и его пароль совпадают, то, скорее всего, это и будет тот самый пользователь. Термин авторизация означает, что в соответствии с учетной записью пользова­теля, который прошел аутентификацию, ему (и всем запросам, которые будут идти к операционной системе от его имени) назначаются определенные права (привилегии), определяющие, что он может, а что не может делать на компьютере.

    15. Удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для операционных систем реального времени).

    16. Обеспечение работы систем программирования, с помощью которых пользова­тели готовят свои программы.

    17. Предоставление услуг на случай частичного сбоя системы.

    18. Операционная система изолирует аппаратное обеспечение компьютера от приклад­ных программ пользователей. И пользователь, и его программы взаимодействуют с компьютером через интерфейсы операционной системы.

    1. Виды программ операционной системы

    ОС – комплекс программ, которые обеспечивают управление аппаратурой ЭВМ, планирование эффективного использования ее ресурсов, автоматизацию процесса подготовки программ и прохождения их в ЭВМ.

    ОС является посредником между ЭВМ и человеком (пользователь, программист, инженер, оператор…). Другими словами ОС – логическое расширение аппаратуры в сторону человека, позволяя перейти от физического уровня аппаратуры к более высокому логическому уровню.

    ОС осуществляет достаточно сложный процесс управления ресурсами ЭВМ, все нюансы которого скрыты от пользователя. Взаимодействие с программистами, операторами и т.д. осуществляется через интерфейс пользователя, который поддерживается ОС.

    Компонентный состав ОС определяется набором функций, для выполнения которых она предназначена. Все программы ОС можно разбить на две группы: управляющая программа и системные обрабатывающие программы.

    Управляющая программа – обязательный компонент любой ОС. Ее функции – планирование прохождения непрерывного потока заданий, управление распределением ресурсов, реализация принятых методов организации данных, управление операциями ввода-вывода (В-В), организация мультипрограммной работы, управление работоспособностью системы после сбоев и др.

    Управляющая программа состоит из ряда компонентов, среди которых следует выделить четыре основных.

     Управление статическими ресурсами (управление заданиями) осуществляет предварительное планирование потока заданий для выполнения и статич. распределение ресурсов между одновременно выполняемыми заданиями в процессе подготовки к выполнению. К статическим ресурсам относят разделы памяти (основной, виртуальной, внешней), доступные для использования устройства, допускающие только монопольное использование, наборы данных и др. такие ресурсы закрепляются за заданием или его частью с момента инициализации до момента завершения и используются обычно в монопольном порядке.

     Управление динамическими ресурсами (управление задачами) осуществляет динамическое распределение ресурсов системы между несколькими задачами, решаемых одновременно в мультипрограммном режиме для выполняемого потока заданий. Входящие в ядро ОС и постоянно находящиеся в ОП.

     Управление данными обеспечивает все операции В-В (т.е. обмен между ОП и ПУ) на физическом и логическом уровнях. Оно включает в себя ряд служб, обеспечивающих выполнение таких функций, как управление каталогом, управление распределением памяти прямого доступа, обработку ошибок В-В и др., реализует различные структуры данных и возможность доступа к ним.

     Управление восстановлением регистрирует машинные сбои и отказы и восстанавливает работоспособность системы после сбоев, если это возможно.

    Системные обрабатывающие программы выполняются под управлением управляющей системы, так же как и любая обрабатывающая программа, в т.ч. пользовательская. Это значит, что она в полном объеме может пользоваться услугами управляющей программы и не может самостоятельно выполнять системные функции. Так, обрабатывающая программа не может самостоятельно осуществлять собственный В-В. операции В-В обрабатывающая программа реализует с помощью запросов к управляющей программе, которая и выполняет непосредственно ввод и вывод данных. Централизованное выполнение системных функций управляющей программой позволяет выполнять их более эффективно и обеспечивает высокий уровень услуг для пользователя.

    К системным обрабатывающим программам относятся программы, входящие в состав ОС: ассемблеры, трансляторы, редакторы связей, загрузчик, программы обслуживания и ряд других. Трансляторы, редактор связей и загрузчик образуют основу систем программирования, построенных на базе ОС.

    1. Одноранговые сетевые ос

    В зависимости от того, как распределены функции между компьютерами сети, сетевые операционные системы, а следовательно, и сети делятся на два класса: одноранговые и двухранговые или чаще называют сетями с выделенными серверами.

    Рис. 1 - Одноранговая сеть

    В одноранговых сетях все компьютеры равны в правах доступа к ресурсам друг друга. Каждый пользователь может по своему желанию объявить какой-либо ресурс своего компьютера разделяемым, после чего другие пользователи могут его эксплуатировать. В таких сетях на всех компьютерах устанавливается одна и та же ОС, которая предоставляет всем компьютерам в сети потенциально равные возможности. Одноранговые сети могут быть построены, например, на базе ОС LANtastic, Personal Ware, Windows for Workgroup, Windows NT Workstation.

    В одноранговых сетях также может возникнуть функциональная несимметричность: одни пользователи не желают разделять свои ресурсы с другими, и в таком случае их компьютеры выполняют роль клиента, за другими компьютерами администратор закрепил только функции по организации совместного использования ресурсов, а значит они являются серверами, в третьем случае, когда локальный пользователь не возражает против использования его ресурсов и сам не исключает возможности обращения к другим компьютерам, ОС, устанавливаемая на его компьютере, должна включать и серверную, и клиентскую части. В отличие от сетей с выделенными серверами, в одноранговых сетях отсутствует специализация ОС в зависимости от преобладающей функциональной направленности - клиента или сервера. Все вариации реализуются средствами конфигурирования одного и того же варианта ОС.

    Одноранговые сети проще в организации и эксплуатации, однако они применяются в основном для объединения небольших групп пользователей, не предъявляющих больших требований к объемам хранимой информации, ее защищенности от несанкционированного доступа и к скорости доступа. При повышенных требованиях к этим характеристикам более подходящими являются двухранговые сети, где сервер лучше решает задачу обслуживания пользователей своими ресурсами, так как его аппаратура и сетевая операционная система специально спроектированы для этой цели.

    1. Ос с выделенными серверами

    В зависимости от того, как распределены функции между компьютерами сети, сетевые операционные системы, а следовательно, и сети делятся на два класса: одноранговые и двухранговые или чаще называют сетями с выделенными серверами.

    Рис. 2 Двухранговая сеть

    Если компьютер предоставляет свои ресурсы другим пользователям сети, то он играет роль сервера. При этом компьютер, обращающийся к ресурсам другой машины, является клиентом. Как уже было сказано, компьютер, работающий в сети, может выполнять функции либо клиента, либо сервера, либо совмещать обе эти функции.

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

    Очевидно, что на выделенных серверах желательно устанавливать ОС, специально оптимизированные для выполнения тех или иных серверных функций. Поэтому в сетях с выделенными серверами чаще всего используются сетевые операционные системы, в состав которых входит нескольких вариантов ОС, отличающихся возможностями серверных частей. Например, сетевая ОС Novell NetWare имеет серверный вариант, оптимизированный для работы в качестве файл-сервера, а также варианты оболочек для рабочих станций с различными локальными ОС, причем эти оболочки выполняют исключительно функции клиента. Другим примером ОС, ориентированной на построение сети с выделенным сервером, является операционная система Windows NT. В отличие от NetWare, оба варианта данной сетевой ОС - Windows NT Server (для выделенного сервера) и Windows NT Workstation (для рабочей станции) - могут поддерживать функции и клиента и сервера. Но серверный вариант Windows NT имеет больше возможностей для предоставления ресурсов своего компьютера другим пользователям сети, так как может выполнять более широкий набор функций, поддерживает большее количество одновременных соединений с клиентами, реализует централизованное управление сетью, имеет более развитые средства защиты.

    Выделенный сервер не принято использовать в качестве компьютера для выполнения текущих задач, не связанных с его основным назначением, так как это может уменьшить производительность его работы как сервера. В связи с такими соображениями в ОС Novell NetWare на серверной части возможность выполнения обычных прикладных программ вообще не предусмотрена, то есть сервер не содержит клиентской части, а на рабочих станциях отсутствуют серверные компоненты. Однако в других сетевых ОС функционирование на выделенном сервере клиентской части вполне возможно. Например, под управлением Windows NT Server могут запускаться обычные программы локального пользователя, которые могут потребовать выполнения клиентских функций ОС при появлении запросов к ресурсам других компьютеров сети. При этом рабочие станции, на которых установлена ОС Windows NT Workstation, могут выполнять функции невыделенного сервера.

    Важно понять, что несмотря на то, что в сети с выделенным сервером все компьютеры в общем случае могут выполнять одновременно роли и сервера, и клиента, эта сеть функционально не симметрична: аппаратно и программно в ней реализованы два типа компьютеров - одни, в большей степени ориентированные на выполнение серверных функций и работающие под управлением специализированных серверных ОС, а другие - в основном выполняющие клиентские функции и работающие под управлением соответствующего этому назначению варианта ОС. Функциональная несимметричность, как правило, вызывает и несимметричность аппаратуры - для выделенных серверов используются более мощные компьютеры с большими объемами оперативной и внешней памяти. Таким образом, функциональная несимметричность в сетях с выделенным сервером сопровождается несимметричностью операционных систем (специализация ОС) и аппаратной несимметричностью (специализация компьютеров).

    1. Виды прерываний.

    Прерывание – это приостановка выполнения в процессоре программы с целью выполнения какой-то более важной программы или нужной в данный момент другой программы или процедуры, после завершения которой продолжается выполнения прерванной программы с момента ее прерывания. Прерывание позволяет компьютеру приостановить любое свое действие и временно переключиться на другое, как заранее запланированное, так и неожиданное, вызванное непредсказуемой ситуацией в работе машины или ее компонента. Каждое прерывание вызывает загрузку определенной программы, предназначенной для обработки возникшей ситуации, - программу обработки прерывания.

    Организация и управление прерываниями функционально во многом смыкается с управлением задачами – одной из базовых функций ОС. Основой для управления процессом одновременного решения нескольких задач (равно как и управления прерываниями) являются процедуры:

    • выбора очередной задачи для определения приоритета задачи;

    • сохранения информации о статусе задачи при ее прерывании

    • недопущения и устранения конфликтов между задачами (координации и синхронизации выполнения задач).

    Прикладные прерывания временно устанавливаются пользователем при многопрограммной работе МП для указания приоритета выполнения прикладных программ (при появлении необходимости выполнения более приоритетной программы текущая менее приоритетная программа прерывается).

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

    Аппаратные прерывания инициируются при обращении к МП со стороны внешних устройств с требованием уделить им внимание и выполнить совместно с ними те или иные процедуры. Аппаратные прерывания не координируются с работой программ и могут быть весьма разнообразны. Для из систематизации и определения очередности выполнения при одновременном возникновении нескольких из них обычно используется контроллер прерываний.

    Программные прерывания – это обычные процедуры, которые вызывает текущая программа для выполнения предусмотренных в ней стандартных подпрограмм, чаще всего подпрограмм – служебных функций работы с внешними устройствами, то есть фактически программные прерывания ничего не прерывают. Программные прерывания делятся на две большие группы вызывающие служебные функции:

    • базовой системы ввода-вывода - прерывания BIOS;

    • операционной системы - прерывания DOS.

    Технические прерывания (или, иначе, прерывания от схем контроля) возникают при появлении отказов и сбоев в работе технических средств (аппаратуре) ПК. Большенство технических прерываний не маскируются, то есть они разрешаются всегда, а некоторые из них относятся к категории «аварийных» (например, отключение питания), и при их возникновении даже не запрашивается причина прерывания.

    Логические прерывания возникают при появлении ошибок в выполняемых программах (деление на 0, потеря значности мантиссы, нарушение защиты памяти и т.п.)

    Прерывания обслуживаются базовой системой ввода-вывода - модулем расширения BIOS и модулем обработки прерывания DOS. BIOS и блок расширения BIOS имеют дело в основном с ее не планируемыми техническими и логическими прерываниями, пользовательскими прикладными прерываниями, а также со многими планируемыми прерываниями, обслуживающими систему ввода-вывода, детализированными и не очень детализированными (прерывания, обслуживаемые BIOS, часто называют прерываниями нижнего уровня).

    Модуль обработки прерываний DOS обслуживает в основном планируемые прерывания, в том числе и прерывания системы ввода-вывода. Прерывания DOS часто называют прерывания верхнего уровня, так как, с одной стороны, в этих прерываниях меньше учитываются технические особенности элементов ПК, с другой стороны, при обработке этих прерываний часто имеют место обращения к программам прерываний системы BIOS. Большенство прерываний BIOS имеют близкие аналоги среди прерываний DOS.

    1. Управление ресурсами.

    Операционная система не только предоставляет пользователям и программистам удобный интерфейс к аппаратным средствам компьютера, но и является механизмом, распределяющим ресурсы компьютера.

    К числу основных ресурсов современных вычислительных систем могут быть отнесены такие ресурсы, как процессоры, основная память, таймеры, наборы данных, диски, накопители на магнитных лентах, принтеры, сетевые устройства и некоторые другие. Ресурсы распределяются между процессорами. Процесс (задача) представляет собой базовые понятие большинства современных ОС и часто кратко определяется как программа в стадии выполнения. Программа - это статический объект, представляющий собой файл с кодами и данными. Процесс - это динамический объект, который возникает в операционной системе после того, как пользователь или сама операционная система решает "запустить программу на выполнение", то есть создать новую единицу вычислительной работы. Например, ОС может создать процесс в ответ на команду пользователя run prg1. exe, где prg1. exe - это время файла, в котором хранится код программы.

    Во многих современных ОС для обозначения минимальной единицы работы ОС используют термин " нить", или "поток", при этом изменяется суть термина "процесс".

    Управление ресурсами вычислительной системы с целью наиболее эффективного их использования является назначением операционной системы.

    Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:

    - планирование ресурса - то есть определение, какому процессу, когда и в каком количестве ( если ресурс может выделяться частями) следует выделить данный ресурс;

    - удовлетворение запросов на ресурсы;

    - отслеживание состояния и учет использования ресурса - то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;

    - разрешение конфликтов между процессами.

    Для решения этих общих задач управления ресурсами разные ОС используют различные алгоритмы, особенности которых, в конечном счете, и определяют облик ОС в целом, включая характеристики производительности, область применения и даже пользовательский интерфейс. Например, применяемый алгоритм управления процессором в значительной степени определяет, может ли ОС использоваться как система разделения времени, система пакетной обработки или система реального времени.

    1. Управления задачами.

    Понятия процесса (process) и потока выполнения (thread) нам уже известны. Мы теперь знаем, в чем здесь имеется сходство, а в чем — существенное различие. Однако при рассмотрении вопросов распределения процессорного времени мы не всегда будем разделять эти понятия. Дело в том, что по отношению к этому ресурсу — процессорному времени — оба этих понятия практически эквиваленты. Они выступают просто как некоторая работа, для выполнения которой необходимо предоставить центральный процессор. Поэтому мы будем в основном использовать термин задача (task), который является как бы обобщающим. Ведь каждый поток выполнения на самом деле получает статус задачи, и для него создается соответствующий дескриптор. Но мы должны помнить о различиях между дескриптором процесса и дескриптором задачи. Даже если процесс состоит из един­ственного потока, мы говорим о дескрипторе процесса, содержащем информацию, с помощью которой операционная система отслеживает все ресурсы, необходи­мые процессу для его выполнения. Один из основных модулей супервизора опера­ционной системы — диспетчер задач — переводит процессы в одно из состояний в зависимости от того, доступен тот или иной ресурс или не доступен. И посколь­ку в мультизадачной системе любой процесс содержит хотя бы один поток, то потоку (то есть задаче) ставится в соответствие дескриптор задачи, в котором сохраняется контекст этих вычислений. Сказанное справедливо для мультипрограммных систем, поддерживающих мультизадачный режим. В мультипрограммных системах, не поддерживающих мультизадачность, контекст прерванного процесса хра­нится в дескрипторе этого процесса. Заметим, что повсеместно распространенные системы Windows 9x/NT/2000/XP являются и мультипрограммными, и мультизадачными. Не случайно начиная с Windows NT и Windows 95 компания Microsoft отказалась от термина «задача» и стала использовать понятия процесса и потока выполнения (треда, нити).

    Для обеспечения дополнительными возможностями системных программистов в решении вопросов распреде­ления процессорного времени вводят специальные информационные структуры и аппаратную поддержку для работы с ними. Во многих современных микропроцессорах, предназначенных для построения на их основе мощных муль­типрограммных и мультизадачных систем, имеются дескрипторы задач.

    Итак, операционная система выполняет следующие основные функции, связанные с управлением процессами и задачами:

    • создание и удаление задач;

    • планирование процессов и диспетчеризация задач;

    • синхронизация задач, обеспечение их средствами коммуникации.

    Создание задачи сопряжено с формированием соответствующей информационной структуры, а ее удаление — с расформированием. Создание и удаление задач осуществляется по соответствующим запросам от пользователей или от самих задач. Задача может породить новую задачу. При этом между задачами появляются «родственные» отношения. Порождающая задача называется «отцом», «родителем», а порожденная — «потомком». Отец может приостановить или удалить свою дочернюю задачу, тогда как потомок не может управлять от­цом.

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

    Основным подходом в организации того или иного метода управления процесса­ми, обеспечивающего эффективную загрузку ресурсов или выполнение каких-либо иных целей, является организация очередей процессов и ресурсов. При распределении процессорного времени между задачами также используется механизм очередей.

    Решение вопросов, связанных с тем, какой задаче следует предоставить процессорное время в данный момент, возлагается на специальный модуль операционный системы, чаще всего называемый диспетчером задач. Вопросы же подбора вычислительных процессов, которые не только можно, но и целесообразно решать параллельно, возлагаются на планировщик процессов.

    1. Планирование и диспетчеризация процессов и задач

    Когда говорят о диспетчеризации, то всегда в явном или неявном виде подразумевают понятие задачи (потока выполнения). Если операционная система не поддерживает механизм потоковых вычислений, то можно заменять понятие задачи понятием процесса. Ко всему прочему, часто понятие задачи используется в таком контексте, что для его трактовки приходится использовать термин «процесс». Очевидно, что на распределение ресурсов влияют конкретные потребности тех задач, которые должны выполняться параллельно. Другими словами, можно столкнуться с ситуациями, когда невозможно эффективно распределять ресурсы с тем, чтобы они не простаивали. Например, пусть всем выполняющимся процессам требуется некоторое устройство с последовательным доступом. Но поскольку, как мы уже знаем, оно не может разделяться между параллельно выполняющимися процессами, то процессы вынуждены будут очень долго ждать своей очереди, то есть недоступность одного ресурса может привести к тому, что длительное время не будут использоваться многие другие ресурсы.

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

    Задача планирования процессов возникла очень давно — в первых пакетных операционных системах при планировании пакетов задач, которые должны были выполняться на компьютере и по возможности бесконфликтно и оптимально использовать его ресурсы. В настоящее время актуальность этой задачи стала меньше. На первый план уже очень давно вышли задачи динамического (или краткосрочного) планирования, то есть текущего наиболее эффективного распределения ресурсов, возникающего практически по каждому событию. Задачи динамического планирования стали называть диспетчеризацией. Долгосрочный планировщик решает, какой из процессов, находящихся во входной очереди, в случае освобождения ресурсов памяти должен быть переведен в очередь процессов, готовых к выполнению. Долгосрочный планировщик выбирает процесс из входной очереди с целью создания неоднородной мультипрограммной смеси. Это означает, что в очереди готовых к выполнению процессов должны находиться в разной пропорции как процессы, ориентированные на ввод-вывод, так и процессы, ориентированные преимущественно на активное использование центрального процессора.

    Краткосрочный планировщик решает, какая из задач, находящихся в очереди готовых к выполнению, должна быть передана на исполнение. В большинстве современных операционных систем, с которыми мы сталкиваемся, долгосрочный планировщик отсутствует.

    1. Утилиты. Типы утилит.

    Утилиты - это специализированные программы, предназначенные для обслуживания и оптимизации работы системы, программы-помощники, решающие задачи, с которыми сама оперативная система справиться не в состоянии. Большинство утилит предназначено для обслуживания файловой системы и дисков. Некоторые утилиты используются для ведения архивов данных, а специальные антивирусные программы обеспечивают защиту системы от компьютерных вирусов. Утилиты - необходимая компонента инструментария программиста любого уровня и, в первую очередь, прикладного. Первоначально слово "утилита" отождествлялось с простыми маленькими программами. Но сегодняшние утилиты часто занимают десятки мегабайт и по сложности не уступают некоторым офисным пакетам. И выполнять они могут уже не одну-две операции, как раньше, а значительно больше...

    Утилиты используются для:

    • Мониторинга показателей датчиков и производительности оборудования — мониторинг температур процессора, видеоадаптера; чтение S.M.A.R.T. жёстких дисков;

    • Управления параметрами оборудования — ограничение максимальной скорости вращения CD-привода; изменение скорости вращения вентиляторов.

    • Контроля показателей — проверка ссылочной целостности; правильности записи данных.

    • Расширения возможностей — форматирование и/или переразметка диска с сохранением данных, удаление без возможности восстановления.

    Типы утилит

    • Дисковые утилиты

    • Дефрагментаторы

    • Проверка диска — поиск неправильно записанных либо повреждённых различным путём файлов и участков диска и их последующее удаление для эффективного использования дискового пространства.

      • Очистка диска — удаление временных файлов, ненужных файлов, чистка «корзины».

      • Разметка диска — деление диска на логические диски, которые могут иметь различные файловые системы и восприниматься операционной системой как несколько различных дисков.

      • Резервное копирование — создание резервных копий целых дисков и отдельных файлов, а также восстановление из этих копий.

      • Сжатие дисков — сжатие информации на дисках для увеличения вместимости жёстких дисков.

    • Утилиты работы с реестром

    • Утилиты мониторинга оборудования

    • Тесты оборудования

    1. Основные составные части ms-dos.

    MS-DOS состоит из следующих компонент:

    • блок начальной загрузки;

    • модуль взаимодействия с BIOS (io.sys для версии 5.0 и выше);

    • модуль обработки прерываний (msdos.sys для версии 5.0 и выше);

    • командный процессор (command.com);

    • внешние команды (программы) MS-DOS;

    • драйверы устройств;

    • файл config.sys;

    • файл autoexec.bat.

    Базовая система ввода-вывода (BIOS) находится в постоянной памяти (постоянном запоминающем устройстве, ПЗУ) компьютера. Эта часть операционной системы является «встроенной» в компьютер. Ее назначение состоит в выполнении наиболее простых и универсальных услуг операционной системы, связанных с осуществлением ввода-вывода. Базовая система ввода-вывода содержит также тест функционирования компьютера, проверяющий работу памяти и Устройств компьютера при включении его электропитания. Кроме того, базовая система ввода-вывода содержит программу вызова загрузчика операционной системы.

    Блок начальной загрузки — это короткая программа, находящаяся в первом секторе каждой дискеты с операционной системой DOS. Функция этой программы заключается в считывании в память еще двух модулей операционной системы, которые и завершают процесс загрузки DOS.

    На жестком диске (винчестере) загрузчик операционной системы состоит из двух частей. Это связано с тем; что жесткий диск может быть разбит на несколько разделов (логических дисков). Первая часть загрузчика находится в первом секторе жесткого диска, она выбирает, с какого из разделов жесткого диска следует продолжить загрузку. Вторая часть загрузчика находится в первом секторе этого раздела, она считывает в память модули DOS и передает им управление. Загрузчик просматривает корневой каталог системного диска. Проверяет, являются ли первые два файла в каталоге файлами io.sys и msdos.sys. Если да — загружает их в ОЗУ и передает управление MS-DOS. Если нет — сообщение на экране и ожидание нажатия какой-либо клавиши пользователем:

    Файлы io.sys и msdos.sys загружаются в память загрузчиком операционной системы и остаются там постоянно.

    Модуль взаимодействия с BIOS (io.sys) — это резидентный модуль (всегда находится в ОЗУ после загрузки). Взаимодействует с BIOS. Расширяет возможности BIOS или изменяет ее свойства (где необходимо) с помощью дополнительных драйверов.

    Модуль обработки прерываний (msdos.sys) — это резидентный модуль, который обеспечивает интерфейс высокого уровня для прикладных программ, содержит программные средства для управления файлами, устройствами ввода-вывода, обработки исключительных ситуаций (ошибок) и др. Прикладная программа вызывает функции этого модуля через механизм прерываний, передавая (принимая) информацию к (от) MS-DOS через регистры центрального процессора или (и) области памяти ОЗУ. Msdos.sys транслирует (переводит) запрос прикладной программы в один или несколько вызовов, адресованных к io.sys и BIOS.

    Командный процессор DOS обрабатывает команды, вводимые пользователем. Командный процессор находится в дисковом файле СOMMAND.COM на диске, с которого загружается операционная система. Некоторые команды пользователя, например type, dir командный процессор выполняет самостоятельно. Такие команды называются внутренними. Для выполнения остальных (внешних) команд пользователя командный процессор отыскивает на дисках программу с соответствующим именем и передает ей управление. По окончании работы программы командный процессор удаляет программу из памяти и выводит сообщение о готовности к выполнению команд (приглашение DOS).

    Командный процессор состоит из 3 частей:

    • резидентной — она размещается в ОЗУ сразу после msdos.sys, включает процедуры обслуживания некоторых прерываний, процедуры обработки стандартных ошибок MS-DOS, процедуру загрузки транзитной части командного процессора;

    • инициализирующей — в ОЗУ она следует сразу за резидентной частью, во время загрузки ОС ей передается управление, она выполняет файл autoexec.bat и некоторые другие действия. Эта часть командного процессора стирается из ОЗУ первой же загруженной программой;

    • транзитной (загружается в старшие адреса ОЗУ; обрабатывает все внутренние команды, команды с клавиатуры и из bat-файлов; выдает системную подсказку MS-DOS, загружает в ОЗУ программы и передает им управление).

    Внешние команды (программы) — дополнительные программы, входящие в MS-DOS, выполняющие определенные функции. Это программы, поставляемые вместе с операционной системой в виде отдельных файлов, которые выполняют действия обслуживающего характера, например форматирование дискет, проверку дисков и т. д.

    Драйверы устройств — это специальные резидентные программы, которые дополняют систему ввода-вывода DOS и обеспечивают облуживание новых или нестандартное использование имеющихся устройств.

    Файл конфигурации системы config.sys. Текстовый файл, содержащий информацию о подгружаемых дополнительных драйверах и некоторую другую информацию, касающуюся непосредственно MS-DOS и выполняемых в ее среде прикладных программ. MS-DOS выполняет этот файл автоматически, сразу после загрузки command, com.

    Файл автозапуска программ при загрузке ОС (autoexec.bat). Текстовый файл, содержащий дополнительную настроечную информацию. MS-DOS выполняет этот файл автоматически, сразу после выполнения config.sys.

    1. Функции файловой системы и иерархия данных

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

    Специальное системное программное обеспечение, реализующее работу с файлами по принятым спецификациям файловой системы, часто называют системой управления файлами. Именно системы управления файлами отвечают за создание, уничтожение, организацию, чтение, запись, модификацию и перемещение файловой информации, а также за управление доступом к файлам и за управление ресурсами, которые используются файлами.

    Назначение системы управления файлами — предоставление более удобного доступа к данным, организованным как файлы, то есть вместо низкоуровневого доступа к данным с указанием конкретных физических адресов нужной нам записи используется логический доступ с указанием имени файла и записи в нем.

    Благодаря системам управления файлами пользователям предоставляются следующие возможности:

    • создание, удаление, переименование (и другие операции) именованных наборов данных (файлов) из своих программ или посредством специальных управляющих программ, реализующих функции интерфейса пользователя с его данными и активно использующих систему управления файлами;

    • работа с недисковыми периферийными устройствами как с файлами;

    • обмен данными между файлами, между устройствами, между файлом и устройством (и наоборот);

    • работа с файлами путем обращений к программным модулям системы управления файлами (часть API ориентирована именно на работу с файлами);

    • защита файлов от несанкционированного доступа.

    Очевидно, что система управления файлами, будучи компонентом операционной системы, не является независимой от нее, поскольку активно использует соответствующие вызовы API. С другой стороны, системы управления файлами сами дополняют API новыми вызовами.

    Следует заметить, что любая система управления файлами не существует сама по себе — она разрабатывается для работы в конкретной операционной системе. В качестве примера можно сказать, что всем известная файловая система FAT (File Allocation Table — таблица размещения файлов) имеет множество реализаций как система управления файлами. Так, система, получившая это название и разработанная для первых персональных компьютеров, называлась просто FAT (нынче ее называют FAT12). Хотя ее разрабатывали для работы с дискетами, некоторое время она использовалась при работе с жесткими дисками. Потом ее доработали для работы с жесткими дисками большего объема, и новая реализация получила название FAT16. Это название файловой системы мы употребляем и по отношению к подсистеме управления файлами самой системы MS DOS, однако реализацию системы управления файлами для OS/2, которая использует основные принципы системы FAT, называют super-FAT; основное отличие - возможность поддерживать для каждого файла расширенные атрибуты. Есть версия системы управления файлами с принципами FAT и для Windows 95/98 и т. д.

    Другими словами, для работы с файлами, организованными в соответствии с некоторой файловой системой, для каждой операционной системы должна быть разработана соответствующая система управления файлами. И эта система управления файлами будет работать только в той операционной системе, для которой создана, но при этом обеспечит доступ к файлам, созданным с помощью системы управления файлами другой операционной системы, но работающей по тем же основным принципам файловой системы.

    В качестве примера снова можно привести всем известную файловую систему FAT, поддерживаемую абсолютным большинством операционных систем, работающих на современных персональных компьютерах. В MS DOS, OS/2, Windows 95/98/ ME, Windows NT/2000/XP, Linux, FreeBSD и других можно работать с файлами, организованными по принципам FAT. Однако программные модули соответствующих систем управления файлами не взаимозаменяемы. Кроме того, все эти системы управления файлами имеют свои индивидуальные особенности и ограничения.

    Таким образом, файловая системаэто множество именованных наборов данных, организованное по принятым спецификациям, которые определяют способы получения адресной информации, необходимой для доступа к этим файлам.

    Термин файловая система определяет, прежде всего, принципы доступа к данным, организованным в файлы. А термин система управления файлами следует употреблять по отношению к конкретной реализации файловой системы, то есть это комплекс программных модулей, обеспечивающих работу с файлами в конкретной операционной системе.

    1. Файловая система fat

    Файловая система FAT (File Allocation Table — таблица размещения файлов) получила свое название благодаря простой таблице, в которой указываются;

    • непосредственно адресуемые участки логического диска, отведенные для размещения в них файлов или их фрагментов;

    • свободные области дискового пространства;

    • дефектные области диска (эти области содержат дефектные участки и не гарантируют чтение и запись данных без ошибок).

    В файловой системе FAT дисковое пространство любого логического диска де­лится на две области (см. рис.): системную область и область данных.

    Системная область логического диска создается и инициализируется при форматировании, а в последующем обновляется при работе с файловой структурой. Область данных логического диска содержит обычные файлы, или файлы-каталоги. Область данных, в отличие от системной области, доступна через пользовательский интерфейс операционной системы.

    Системная область состоит из следующих компонентов (расположенных в логическом адресном пространстве друг за другом):

    • загрузочной записи (Boot Record, BR);

    • зарезервированных секторов (Reserved Sectors, ResSec);

    • таблицы размещения файлов (File Allocation Table, FAT);

    • корневого каталога (Root Directory, RDir).

    Таблица размещения файлов

    Таблица размещения файлов представляет собой адресную карту области данных, в которой описывается и состояние каждого участка области данных, и принадлежность его к тому или иному файловому объекту.

    Всю область данных разбивают на так называемые кластеры. Кластер представляет собой один или несколько смежных секторов в логическом дисковом адресном пространстве (точнее — только в области данных). Кластер — это минимальная адресуемая единица дисковой памяти, выделяемая файлу (или некорневому ката­логу). Кластеры введены для того, чтобы уменьшить количество адресуемых единиц в области данных логического диска,

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

    Номер кластера всегда относится к области данных диска (пространству, зарезервированному для файлов и подкаталогов). Номера кластеров соответствуют элементам таблицы размещения файлов. Первый допустимый номер кластера всегда начинается с 2.

    Логическое разбиение области данных на кластеры как совокупности секторов взамен использования одиночных секторов имеет следующий смысл:

    • прежде всего, уменьшается размер самой таблицы FAT; а уменьшается возможная фрагментация файлов;

    • ускоряется доступ к файлу, так как в несколько раз сокращается длина цепочек фрагментов дискового пространства, выделенных для него.

    Однако слишком большой размер кластера ведет к неэффективному использова­нию области данных, особенно в случае большого количества маленьких файлов.

    Достаточно наглядно идею файловой системы, использующей таблицу размеще­ния файлов, иллюстрирует рис.

    Из рисунка видно, что файл MYFILE.TXT размещается, начиная с восьмого кластера. Всего файл MYFILE.TXT занимает 12 кластеров. Цепочка (chain) кластеров для на­шего примера может быть записана следующим образом: 8,9, ОА, 0В, 15,16,17,19

    1А, 1В, 1C, ID. Кластер с номером 18 помечен специальным кодом F7 как плохой (bad), он не может быть использован для размещения данных. При форматировании обычно проверяется поверхность магнитного диска, и те сектора, при контрольном чтении с которых происходили ошибки, помечаются в FAT как плохие. Кластер 1D помечен кодом FF как конечный (последний в цепочке) кластер, принадлежащий данному файлу. Свободные (незанятые

    ) кластеры помечаются кодом 00; при выделении нового кластера для записи файла берется первый свободный кластер. Возможные значения, которые могут приписываться элементам таблицы FAT, приведены в табл.

    Таблица. Значения элементов FAT.

    Значение

    Описание

    0000h

    Свободный кластер

    fff0h-fff6h

    Зарезервированный кластер

    fff7h

    Плохой кластер

    fff8h-ffffh

    Последний кластер

    0002h-ffefh

    Номер следующего кластера в цепочке

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

    В связи с тем, что таблица FAT используется при доступе к диску очень интенсивно, она обычно загружается в оперативную память (в буферы ввода-вывода или в кэш) и остается там настолько долго, насколько это возможно. Если таблица большая, а файловый кэш, напротив, относительно небольшой, в памяти размещаются только фрагменты этой таблицы, к которым обращались в последнее время.

    В связи с чрезвычайной важностью таблицы FAT она обычно хранится в двух идентичных экземплярах, второй из которых непосредственно следует за первым. Обновляются копии FAT одновременно, используется же только первый экземпляр. Если он по каким-либо причинам окажется разрушенным, то произойдет обращение ко второму экземпляру. Так, например, утилита проверки и восстановления файловой структуры ScanDisk из ОС Windows при обнаружении несоответствия первичной и резервной копии FAT предлагает восстановить главную таблицу, используя данные из копии.

    Корневой каталог отличается от обычного файла-каталога тем, что он помимо размещения в фиксированном месте логического диска имеет еще и фиксированное число элементов. Для каждого файла и каталога в файловой системе хранится информация в соответствии со структурой, представленной в табл. Для работы с данными на магнитных дисках в системах DOS, которые имеют файловую систему FAT, удобно использовать широко известную утилиту Disk Editor из комплекта утилит Питера Нортона. Основными недостатками этой программы на сегодняшний день являются ограничения на размеры диска и разделов и отсутствие поддержки работы с такими распространенными файловыми системами, как FAT32 и NTFS.

    Таблица. Структура элементов каталога.

    Размер поля данных, байт

    Содержание поля

    11

    Имя файла или каталога

    1

    Атрибуты файла

    1

    Резервное поле

    3

    Время создания

    2

    Дата создания

    2

    Дата последнего доступа

    2

    Зарезервировано

    2

    Время последней модификации

    2

    Дата последней модификации

    2

    Номер начального кластера в FAT

    4

    Размер файла

    1. Представление об активизации операционной системы

    Механизм активизации операционной системы Windows ХР разработан Microsoft для пре­дотвращения нелегального копирования программных продуктов.

    Принцип, который лежит в основе механизма активизации, состоит в следующем.

    На стороне пользователя генерируется специальный ключ. Этот элемент представляет со­бой 50-значный номер — Installation ID, Код отсылается по Web-сети на сайт Microsoft, где на его основе генерируется другой код, который возвращается обратно. Пользователь вводит этот код и, если отосланный код соответствует полученному, активизация считается завер­шенной. В противном случае через некоторое время работа всех программ Windows ХР, за ис­ключением программы, ответственной за активизацию, блокируется.

    Активизация является обязательной для операционных систем Microsoft, начиная с Windows ХР. Механизм активизации получил название WPA (Microsoft Windows Product Activation).

    Installation ID и серийный номер— это различные элементы. 25-значный серийный номер, вводимый при инсталляции системы, содержит часть информации, кодируемой для активизации, В частности, серийный номер участвует в формировании группы из 20 десятичных цифр под названием Product ID. Узнать это значение можно при выполнении последовательности Пуск - Панепь управления - Система. В окне Свойства системы выбе­рите вкладку Общие, в которой отображен интересующий вас код. Прочесть код можно так­же в системном реестре по адресу HKEY_LOCAL_MACHlNE\Sof tware\Microsoft \Windows\ CurentVersion; ключ —ProductlD.

    Код Product ID разбивается на группы цифр: AAAAA-BBB-CCCCCCC-DDDDD, где пер­вые 5 цифр указывают на версию системы (всегда одинаковые для одного и того же типа), а остальные формируются из 25-значного серийного номера системы, который вы ввели.

    Таким образом, Installation ID содержит в себе полную информацию о типе операционной системы и ключ серийного номера, который был введен при инсталляции системы. Осталь­ные поля Installation ID формируются на основании анализа системой компонентов аппарат­ного обеспечения ПК.

    Вся информация об активизации в зашифрованном виде хранится в файле wpa.dbl по адресу Windows\System32. В момент активизации в этот файл записывается информация, собранная системой для генерации кода Installation ID. Эта информация записывается один раз и больше не изменяется. При загрузке системы обновляется копия этих данных, выби­раемая непосредственно из реестра. Полученные значения сравниваются. Если коды не сов­падают более чем в трех позициях, то система требует повторной активизации.

    Из этого следует, что система может обновляться много раз, причем при обновлении мо­жет модернизироваться не более трех компонентов аппаратного обеспечения.

    Например, вы можете сменить 6 графических плат, 10 микропроцессоров и 5 раз нарас­тить ОЗУ. При подобной модернизации трех компонентов ПК не должны возникнуть про­блемы с активизацией системы. Если же после этого поменять еще и жесткий диск, то систе­ма потребует заново выполнить процедуру активизации.

    1. Система bios и ее настройки. Назначение bios

    Базовая система ввода-вывода BIOS (Basic Input Output System) представляет собой набор программ и данных конфигурирования, предназначенных для настройки ПК. Про­граммы BIOS встроены в аппаратное обеспечение ПК и представлены тремя аппаратными компонентами — BIOS во флэш-памяти на системной плате, RTC CMOS RAM в чипе энергонезависимой памяти на системной плате, которая имеет постоянное питание от акку­мулятора, а также расширениями BIOS, расположенными в памяти программ адаптеров уст­ройств ввода-вывода (УВВ).

    BIOS — наиболее оперативная часть программного обеспечения. В область ее задач входит выполнение подготовительных операций по обслуживанию аппаратного обеспечения ПК.

    Таким образом, система BIOS — это сложный "гибрид", объединяющий программы с аппаратным обеспечением ПК посредством аппаратно-программного интерфейса. Для реа­лизации управления используется простой и эффективный механизм. Различные компонен­ты операционной системы и прикладных программ, реагируя на те или иные события в ПК, ге­нерируют одно из прерываний, вызывающих функцию BIOS. Получив информацию о том, что следует делать, BIOS обращается по адресам портов к УВВ, снабжая их ценной информацией.

    BIOS не работает непосредственно с аппаратными средствами ПК, а использует сведения о том, как функционирует то или иное оборудование. Подобного рода "знания" заложены в базовую спецификацию BIOS. Следовательно, если появляются новые устройства и порты, отсутствующие в базовой спецификации BIOS, ее следует обновить, благо подобная возмож­ность существует.

    Загрузка операционной системы — одна из обязанностей BIOS. После включения ПК процессор напрямую обращается к BIOS, программы которой позволяют ввести в действие основные модули; ОЗУ, системные контроллеры, видеосистему, клавиатуру, контроллеры дисковых устройств и т.д.

    После благополучного запуска Windows функции управления УВВ передаются програм­мам операционной системы. Windows XP берет на себя большинство функций контроля и управления аппаратным обеспечением ПК, что существенно сужает сферу деятельности BIOS.

    Функции и стандартные процедуры BIOS

    BIOS реализует следующие основные функции.

    • Обеспечивает самотестирование оборудования при включении электроэнергии, реа­лизуя программу самотестирования ПК при включении электроэнергии POST (Power On Self Test).

    • Позволяет инициализировать УВВ. Часть инициализации выполняется аппаратно-программными средствами, интегрированными в адаптеры УВВ.

    Обеспечивает загрузку операционной системы, выполняет программу BOOT (загруз­чик операционной системы).

    • Обрабатывает программные прерывания от УВВ и обслуживает функции. Для каждого стандартного периферийного устройства BIOS хранит программу обслуживания. Некоторые программы обслуживания устройств загружаются отдельно и хранятся в отдельной области дисковой памяти.

    • Обеспечивает настройку конфигурации ПК. Для этой цели BIOS располагает специ­альной программой установки параметров ПК— SETUP BIOS. В состав системы BIOS входит также ИМС, в которой хранятся параметры конфигурирования ПК.

    • Снабжает программами-драйверами аппаратные компоненты ПК, что позволяет обеспечить их взаимодействие с операционной системой при ее загрузке.

    1. Параметры Windows xp

    - Вытесняющей многозадачность и многопоточность

    Многозадачность — это способность операционной системы одновременно отслеживать ход выполнения нескольких задач. В этом случае система делит все рабочее время на корот­кие промежутки (кванты), в течение которых процессор ПК попеременно выполняет работу с отдельными фрагментами различных задач. У пользователя же складывается ложное впечат­ление одновременности и непрерывности их выполнения.

    Windows XP обеспечивает вытесняющую многозадачность и многопоточность.

    - Совместимость (Compatibility) Система может иметь привычный интерфейс для операционных систем семейства Windows, с некоторыми добавлениями и расширениями, поддержку файловых систем NTFS, FAT 16 и FAT 32. Для большинства приложений, написанных для MS DOS, Windows 9x, Win­dows NT 4,0, а также для некоторых программ для OS/2 и POSIX могут быть использованы все

    функции.

    - Переносимость (Portability) Переносимость —- это способность операционной системы работать на компьютерах раз­личных систем, базирующихся на процессорах всевозможных типов.

    Windows ХР работает в ПК, построенных на процессорах различных поколений семейств Intel и AMD. Существует также 64-разрядная модификация Windows ХР, предназначенная для обслуживания ПК на базе микропроцессора Intel Itanium.

    - Масштабируемость (Scalability) В Windows XP реализована поддержка технологии симметричной многопроцессорной обра­ботки процессов SMP(Symmetric Multi-Processing).

    В SMP-системе все процессоры (Windows XP Professional предусматривает поддержку двух ЦП) должны быть одинаковы и выполнять идентичные функции. Работа микропроцессоров

    в системе SMP состоит в следующем.

    • Все процессы выполняются в одном и том же пространстве ОЗУ

    • Любой процессор может выполнять любой процесс в системе.

    • Любой процессор может обрабатывать любое внешнее прерывание. Каждый процес­сор обрабатывает те внутренние прерывания, которые возникают в ходе выполнения текущего потока команд.

    • Любой процессор может инициализировать операцию ввода-вывода.

    Такая взаимозаменяемость означает, что любой процессор SMP-системы потенциально может выполнять любую операцию, следующую на выполнение.

    - Распределенная обработка (Distributed processing) Windows XP Professional обладает встроенными сетевыми возможностями, что обеспечи­вает связь с различными типами компьютеров благодаря наличию разнообразных транспорт­ных протоколов связи технологии клиент/сервер.

    - Надежность и отказоустойчивость (Reliability and robustness) Архитектура Windows ХР защищает приложения от повреждения друг другом и самой операционной системой. При этом используется отказоустойчивая структурированная обра­ботка особых ситуаций на всех архитектурных уровнях, которая включает восстанавливаемую

    файловую систему NTFS и обеспечивает защиту с помощью встроенной системы безопасно­сти и усовершенствованных методов управления памятью.

    - Локализация (Localization) Windows ХР предоставляет возможности для работы во многих странах мира на нацио­нальных языках, что достигается благодаря применению стандарта ISO Unicode.

    - Расширяемость (Extensibility) Благодаря модульному построению Windows ХР возможно добавление новых модулей на различные архитектурные уровни операционной системы.

    16. Назначение и структура реестра

    Назначение реестра. Windows содержит системный реестр. Системный реестр содержит структурированные данные настройки операционной системы. В базе данных Windows хранятся параметры уста­новки и настройки аппаратного обеспечения, например пользовательские настройки, уста­новки по умолчанию и т.п. В реестре хранятся параметры установки и настройки Windows ХР и 32-разрядных приложений для Windows.

    Компоненты базы данных реестра размещаются в строго установленном порядке, в одном и том же месте для всех программ.

    Системный реестр можно редактировать. Начинающим пользователям не рекомендуется углуб­ляться и текст этой базы данных и вносить в нее изменения. Это может пагубно отразиться на работоспособности ПК. Практически все необходимые изменения а реестре выполняются авто­матически с помощью панели управления из соответствующих диалоговых окон приложений либо при установке Windows ХР.

    Структура реестра. Реестр содержит несколько разделов и включает файлы и папки, аналогичные файлам и папкам жесткого диска. В каждом разделе расположен список разделов, которые, как и на дисках, аналогичны папкам. Разделы содержат подразделы и параметры, в которых хранятся числа и текстовые строки,

    В реестр включены пять основных разделов, в которых размещены подразделы.

    Раздел hkey__locnl__machme содержит нею информацию об аппаратном обеспечении ПК, например о настройке драйверов и параметров работы, установки программного обеспе­чения, общие для всех пользователей, и т.д.

    Раздел hkey„users содержит сведения об индивидуальных настройках, применяемых отдельными пользователями, в частности о настройке цвета рабочего стола, звуковых эффек­тов и т.д.

    Раздел hkey_cui"rent._iaser является подразделом hkey_ueert и содержит настройки пользователя, работающего на ПК в настоящий момент, например выбор экранной заставки или языка.

    Раздел hkey„.current_config является подразделом hkey_local_machine и содер­жит информацию о текущей аппаратной конфигурации ПК.

    Раздел hkey„classes_root предназначен для хранения ассоциаций между расшире­ниями файлов и приложениями, с помощью которых эти файлы следует открывать. В разделе хранятся также ассоциации между программами и. ярлыками и т.п.

    Разделы системного реестра разбиты на отдельные элементы. Все элементы хранятся в от­дельных файлах — ульях. Во время работы с Windows XP просматривать, изменять или копи­ровать большинство файлов нельзя, поскольку правом доступа к ним обладает только система.

    Для просмотра содержимого системного реестра, редактирования разделов и параметров используется программа Редактор реестра.

    Чтобы открыть окно этой программы, выберите команду меню Пуск => Выполнить, в тек­стовое поле введите команду regedi t и щелкните на кнопке ОК.

    Oсновные элементы окна программы Редактор реестра — строка меню, левое и правое окна и строка состояния. В левом окне отображаются элементы разделов, а в правом — пара­метры.

    17.Представление о динамическом диске.

    Динамический диск (Dynamic Disk), который может быть организован в Windows ХР Professional, представляет собой физический диск со структурой динамических разделов.

    В традиционной модели записи в структуре диска используются таблицы разделов, в ко­торых организуются первичный раздел (primary partition) и расширенные разделы (extended, secondary). В структуре расширенного диска организуется структура логических дисков, что имеет место в операционных системах MS DOS, Windows (до ХР) и Windows NT (до 4.0 вклю­чительно). Для подобной организации характерно наложение ограничений на использование дисковой памяти.

    В динамических же дисках пространство дисковой памяти делится не на разделы, а на то­ма, которые могут прерываться и распространяться как на один, так и на несколько дисков.

    Тома динамических дисков могут быть следующих видов.

    • Простой (simple) том использует дисковое пространство одного диска. В этом случае каждому разделу или логическому диску присваивается логическое имя (буква) и вы­деляется часть дискового пространства. Простые тома практически ничем не отлича­ются от разделов традиционной структуры дисковой памяти.

    • Составной (spanned) том строится на тех же принципах, что и простой том, но распо­лагается на нескольких физических дисках (до 32). Для программ подобный составной динамический диск представлен как один том, Данные пишутся и читаются последо­вательно.

    Чередующийся (stripped) том позволяет хранить данные на двух и более физических дисках. Несколько динамических дисков в этом случае представляют как бы один том. Данные пишутся и читаются сразу на несколько дисков, что обеспечивает высокую скорость выполнения дисковых операций. Такой способ хранения данных называется RAID-0.

    • Зеркальный (mirrored) том предусматривает использование двух физических дисков. Данные, записываемые на один из дисков автоматически, дублируются на другом. Это не дает никаких преимуществ в скорости, но обеспечивает вдвое большую степень со­хранности данных. Подобная запись с избыточностью называется отказоустойчиво­стью (fault tolerance), а способ хранения— RA1D-1. При использовании зеркальных томов приложение просматривает только один том, а за синхронизацию хранящейся на дисках информации несет ответственность Windows XP.

    • Том RAID-S состоит из трех или более дисков и является комбинацией зеркального и чередующегося томов (с контролем ошибок). В этом случае данные пишутся на два диска, в два блока, а на третий диск и в третий блок записывается код коррекции ошибок (ЕСС), с помощью которого по информации любого из блоков можно восста­новить содержимое второго блока. Причем код ЕСС записывается попеременно на каждый из входящих в массив дисков. Эта технология позволяет более экономно ис­пользовать дисковое пространство, чем зеркальный том, но работает медленнее.

    18.Файловая система ntfs

    По сравнению с FAT или FAT32, NTFS предоставляет пользователю целое сочетание достоинств: эффективность, надежность и совместимость. Файловая система NTFS применяется в операционной системе Windows NT/2000/XP.

    Как и любая другая система, NTFS делит все полезное место на кластеры - блоки данных, используемые единовременно. NTFS поддерживает почти любые размеры кластеров - от 512 байт до 64 Кбайт, неким стандартом же считается кластер размером 4 Кбайт

    При установке NTFS, диск разделяется на две неравные части: первая отводиться под MFT (Master File Table - общая таблица файлов), называется MFT - зоной и занимает порядка 12% от общего размера диска, вторую часть занимают собственно ваши данные. Есть еще и третья зона, но о ней позже. MFT лежит в начале диска, каждая запись в MFT соответствует какому-либо файлу и занимает около 1 Kb. По своей сути это каталог всех файлов находящихся на диске. Надо заметить, что любой элемент данных в NTFS рассматривается как файл, даже MFT.

    MFT-зона всегда держится пустой - это делается для того, чтобы самый главный, служебный файл (MFT) не фрагментировался при своем росте. Остальные 88% диска представляют собой обычное пространство для хранения файлов.

    Свободное место диска, однако, включает в себя всё физически свободное место - незаполненные куски MFT-зоны туда тоже включаются. Механизм использования MFT-зоны таков: когда файлы уже нельзя записывать в обычное пространство, MFT-зона просто сокращается (в текущих версиях операционных систем ровно в два раза), освобождая таким образом место для записи файлов. При освобождении места в обычной области MFT зона может снова расширится.

    Первые 16 файлов (метафайлы) в MFT - зоне являются особой кастой. В них содержится служебная информация, они имеют фиксированное положение и они недоступны даже операционной системе. Кстати, первым из этих 16 является сам MFT - файл. Существует копия первых трех записей.

    Третья зона, в свою очередь, делит диск пополам. Это сделано для надежности, в случае утери информации в MFT - файле, всегда можно восстановить информацию, а там уже дело техники, как говориться. Все остальные файлы в MFT - зоне могут располагаться произвольно. Надо заметить, что в MFT - зоне теоретически кроме служебных файлов ничего не находиться. Но бывают случаи, когда места на той части диска, что отведена для пользователя не остается и тогда MFT - зона уменьшается. Соответственно появляется место во второй половине диска для записи данных. Когда же в этой зоне освобождается достаточное количество свободного места, MFT - зона опять расширяется. И вот тут то появляется проблема. В MFT - зону попадают обычные файлы и она начинает фрагментироваться. Но вернемся к метафайлам. Каждый из них отвечает за какую-либо область работы. Начинаются они с символа имени $. Приведем пример некоторых из них:

    $MFT - не что иное как сам MFT

    $MFTmirr - та самая копия, что по серединке диска

    $LogFile - это файл журналирования

    $Boot - как видно из названия, его величество загрузочный сектор

    $Bitmap - карта свободного места раздела

    Информация о метафайлах находиться в MFT - файле. Такая система придумана для увеличения надежности NTFS и себя оправдывает. NTFS практически не имеет ограничения на размеры диска ( во всяком случае при нынешних технологиях производства жестких дисков). Размер кластера может варьироваться от 512 b до 64 Kb, хотя обычный его размер равен 4 Kb.

    Каталог NTFS. Это метафайл с обозначением $. Он разделен на части, в каждой из которых содержится имя файла, его атрибуты и ссылка на MFT - файл. А там уже есть вся остальная информация. Каталог представляет собой бинарное дерево, т.е. в каталоге информация о данных на диске расположена таким образом, что при поиске какого-либо файла каталог разбивался на две части и ответ заключался в том, в какой именно части находиться искомое. Затем та же самая операция повторяется в выбранной половине. И так до тех пор, пока не будет найден нужный файл.

    Файлы. Их как таковых нет, есть так называемые потоки. То есть, любая единица информации представляет собой несколько потоков. Один поток - это сами данные, он является основным. Другие потоки - атрибуты файла. К любому файлу можно прикрепить любой другой файл. Проще говоря, к потокам одних данных можно прикрепить совершенно новый поток и записать туда новые данные. Вот только информация по объему файла берется по объему основного потока. Пустые или малоразмерные файлы на диске отображены только в метафайлах. Сделано это в целях экономии дискового пространства. Вообще надо отметить, что понятие файл намного глубже и шире и все свойства описать довольно сложно. Отмечу, что максимальная длина имени файла может достигать 255 символов.

    Ко всему прочему, файлы NTFS имеют такой атрибут как сжатый. Любой файл или даже каталог может быть сжат. Сама операция сжатия происходит незаметно, так как скорость ее довольно высока. До кучи, используется так называемое виртуальное сжатие т. е. одна часть файла может быть сжата, а другая нет. Сжатие осуществляется блоками. Каждый блок равен 16 кластерам.

    В NTFS используется шифрование данных. Таким образом, если вам пришлось по каким – либо причинам переустановить систему заново, то зашифрованные файлы без соответствующей санкции прочитать не сможете.

    Журналирование. NTFS - отказоустойчивая система, которая вполне может привести себя в корректное состояние при практически любых реальных сбоях. Любая современная файловая система основана на таком понятии, как транзакция - действие, совершаемое целиком и корректно или не совершаемое вообще. У NTFS просто не бывает промежуточных (ошибочных или некорректных) состояний - квант изменения данных не может быть поделен на до и после сбоя, принося разрушения и путаницу - он либо совершен, либо отменен.

    Пример: осуществляется запись данных на диск. Вдруг выясняется, что в то место, куда мы только что решили записать очередную порцию данных, писать не удалось - физическое повреждение поверхности. Поведение NTFS в этом случае довольно логично: транзакция записи откатывается целиком - система осознает, что запись не произведена. Место помечается как сбойное, а данные записываются в другое место - начинается новая транзакция.

    Таким образом, журналирование – средство для существенного сокращения числа ошибок и сбоев системы. Вряд ли рядовой пользователь NTFS хоть когда-нибудь заметит ошибку системы или вынужден будет запускать chkdsk - опыт показывает, что NTFS восстанавливается в полностью корректное состояние даже при сбоях в очень загруженные дисковой активностью моменты. Можно даже оптимизировать диск и в самый разгар этого процесса нажать reset - вероятность потерь данных даже в этом случае будет очень низка. Важно понимать, однако, что система восстановления NTFS гарантирует корректность файловой системы, а не ваших данных. Если вы производили запись на диск и получили аварию - ваши данные могут и не записаться.

    19.Представление об учетных записях Windows xp.

    Если создано две и более учетных записей, то при загрузке системы отобразится окно приветствия (рис. 2.5), в котором содержатся анимированные кнопки, соответствующие каж­дой учетной записи.

    На ПК, установленном дома или в офисе, может работать несколько пользователей (часто неравноправных по отношению друг к другу). В связи с этим из соображений ограничения доступа к документам, эксклюзивным материалам, важным данным и программам пользова­телям Windows ХР для работы на ПК предоставляется отдельная учетная запись. Подобная мера позволяет предотвратить попытки ознакомления с важными документами, а также убе­речь их от повреждения или порчи.

    Вход каждого пользователя в систему для работы на ПК выполняется в соответствии с процедурой регистрации в системе.

    Учетная запись позволяет операционной системе идентифицировать пользователей.

    В Windows ХР существует иерархия из трех основных типов учетных записей: администра­тора компьютера, гостя и ограниченной учетной записи. Каждый тип характеризуется опре­деленным кругом возможностей, которые могут быть предоставлены пользователям ПК.

    При регистрации наиболее привилегированным является уровень администратора ком­пьютера, в ведении которого — решение вопросов, связанных с управлением системным комплексом. В Windows ХР существует как минимум одна учетная запись администратора компьютера. Администратор принимает решения о том, кому разрешено работать в системе и какую работу он может выполнять.

    Пользователи с ограниченными учетными записями могут полноценно работать с устрой­ствами и большинством программ на ПК. Вместе с тем они не вправе вносить серьезные из­менения в его конфигурацию.

    Администратор создает ограниченные учетные записи для людей, которые регулярно ра­ботают за ПК. После этого система ведет учет предпочтений пользователей и соответствую­щим образом подстраивает свои параметры.

    Действия гостей системы существенно ограничены. Администратору необходимо создать хотя бы одну учетную запись Гость для тех пользователей, для которых Windows ХР должным образом настраивать свои параметры не будет. Гости могут использовать ПК только в качест­ве терминала.

    Если вы — владелец ПК, то, естественно, вы обладаете учетной записью администратора компьютера. Учетной записью с правами администратора могут обладать и несколько поль­зователей. После инсталляции система автоматически предоставляет права администратора всем учетным записям.

    Если ПК подключен к сети, то используется учетная запись пользователя на уровне домена.

    Администратор настраивает учетные записи для других пользователей, при необходимо­сти изменяет их параметры, восстанавливает пароли и, если потребуется, работает с файлами других пользователей. Только администратор может установить новое программное обеспе­чение и добавить оборудование.

    На ПК. работающем под управлением Windows ХР Professional, администратор обладает более широкими полномочиями, чем в Home Editini. Эта операционная система предостав­ляет большую степень безопасности при обслуживании нескольких пользователей.

    После входа того или иного пользователя в систему Windows ХР загружает соответствую­щий фоновый рисунок рабочего стола и помнит, какие именно Web-узлы он посещал в Internet.

    20.Общие концепции консоли управления Microsoft

    В Windows XP был кардинально изменен интерфейс управления операционной системой. В соответствии с новой концепцией Microsoft из системы Windows NT были удалены все автономные и несовместимые друг с другом административные утилиты и разработана единая среда управления, получившая название консоль управления Microsoft (Microsoft Management Console, MMC). Эта общая консоль управления разработана для запуска всех программных модулей администрирования, конфигурирования или мониторинга локальных компьютеров и сети в целом. Такие законченные модули называются оснастками (snap-ins). Консоль управления сама по себе не выполняет никаких функций администрирования, но служит в качестве рабочей среды для запуска оснасток, создаваемых как компанией Microsoft, так и независимыми поставщиками программного обеспечения (Independent Software Vendor, ISV).

    Появление ММС обусловлено желанием создать единую среду управления для администрирования операционных систем Windows. Оснастки представляют собой управляющие компоненты, которые объединены в среде ММС. Из нескольких оснасток можно создать индивидуальный управляющий инструмент.

    Консоль ММС включает в себя интерфейсы прикладного программирования (API), оболочку пользовательского интерфейса (консоли) и набор инструкций.

    Microsoft Management Console позволяет создавать более совершенные административные инструменты, которые могут предоставлять различные уровни функциональных возможностей. Эти инструменты можно легко интегрировать в операционную систему, а также изменять и настраивать по своему усмотрению. В данном случае инструмент представляет собой не просто одиночное приложение. Инструмент может состоять из одной или нескольких оснасток и каждая оснастка, в свою очередь, может содержать дополнительные оснастки расширения. Такая модульная структура позволяет системному администратору существенно снизить стоимость управления системой благодаря возможности создания индивидуальных инструментов на основе выбранных оснасток, которые предоставляют только необходимые возможности и средства просмотра. Администратор может затем сохранять каждый индивидуальный инструмент в отдельном файле (файле консоли ММС с расширением msc) и отправлять его другим пользователям или администраторам, которым делегированы права на выполнение данных административных задач.

    ММС и модель администрирования Windows XP представляют собой следующий шаг в развитии технологий администрирования. Консоль управления имеет ряд преимуществ, которые заключаются в упрощении интерфейса, предоставлении больших возможностей по настройке разработанных решений для определенных административных проблем и в обеспечении различных уровней функциональности. В большинстве случаев достаточно сложно разработать инструмент, который будет являться неотъемлемой частью операционной системы. С помощью ММС эта задача существенно упрощается. Тщательно разработанный административный инструмент идеально подойдет для решения стоящих перед вами задач и будет иметь интуитивно понятный интерфейс. Такой инструмент также будет использовать возможности уже имеющихся инструментов, что снимает необходимость "изобретать велосипед".

    В операционные системы Windows XP и следующие версии продуктов семейства BackOffice® оснастки ММС включены в качестве стандартных административных программ.

    21.Защита системных файлов Windows xp

    Все системные файлы и драйверы в Windows XP защищены с, помощью цифровой подписи. Это сделано, чтобы гарантировать их совместимость с операционной системой Windows XP. Цифровая подпись Microsoft гарантирует, что файл, подписанный ею, тестировался на совместимость с Windows XP и не был модифицирован или переписан во время установки дополнительного программного обеспечения.

    В зависимости от установленных опций настройки, Windows XP может либо игнорировать драйверы, не имеющие цифровой подписи, либо выводить предупреждение при обнаружении таких драйверов (эта опция используется по умолчанию), или же просто не допускать их установки. Чтобы установить опции защиты системных файлов в Windows XP, проделайте следующее:

    1. Вызовите опцию Система (System) на панели управления и перейдите на вкладку Оборудование (Hardware).

    2. Нажмите кнопку Подписывание драйверов (Driver Signing). На экране появится диалоговое окно Параметры подписывания драйвера (Driver Signing Options), в котором имеется группа Проверка подписи файла (File signature verification), позволяющая установить следующие опции:

    Если установлен переключатель Пропустить (Ignore), то система даст возможность устанавливать любые драйверы, игнорируя наличие или отсутствие цифровой подписи. Как уже упоминалось, отсутствие у драйвера или системного файла цифровой подписи указывает на то, что его совместимость с Windows XP официально не подтверждена, и он, возможно, станет источником проблемы.

    Если установлен переключатель Предупреждать (Warn), то система будет выводить предупреждающие сообщения при попытке установить драйвер, не имеющий цифровой подписи. Обратите внимание, что несмотря на вывод предупреждения драйвер, тем не менее, будет установлен.

    Если установлен переключатель Блокировать (Block), то драйверы, не имеющие цифровой подписи, устанавливаться не будут.

    Примечание

    Пользователи, зарегистрировавшиеся в системе как Администратор или являющиеся членами группы Администраторы, имеют возможность установить режим, при котором выбранная ими опция будет применяться как опция по умолчанию для всех пользователей, регистрирующихся на данном компьютере. Для этого в группе Административный параметр (Administrator option) следует установить флажок Использовать в качестве системного параметра по умолчанию (Apply setting as system default).

    Кроме того, в состав Windows XP входят следующие функциональные возможности по защите драйверов и системных файлов, гарантирующие их неизмененное состояние:

    • Защита системных файлов (Windows File Protection)

    • Проверка системных файлов (System File Checker)

    • Верификация цифровой подписи (File Signature Verification)

    22.Архитектура «клиент-сервер»

    Клиент-сервер (Client-server) – вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг (сервисов), называемых серверами, и заказчиками услуг, называемых клиентами. Нередко клиенты и серверы взаимодействуют через компьютерную сеть и могут быть как различными физическими устройствами, так и программным обеспечением.

    Первоначально системы такого уровня базировались на классической двухуровневой клиент-серверной архитектуре (Two-tier architecture). Под клиент-серверным приложением в этом случае понимается информационная система, основанная на использовании серверов баз данных.

    Схематически такую архитектуру можно представить, как показано на рисунке:

    Рис.1 Классическое представление архитектуры "клиент-сервер"

    На стороне клиента выполняется код приложения, в который обязательно входят компоненты, поддерживающие интерфейс с конечным пользователем, производящие отчеты, выполняющие другие специфичные для приложения функции.

    Клиентская часть приложения взаимодействует с клиентской частью программного обеспечения управления базами данных, которая, фактически, является индивидуальным представителем СУБД для приложения.

    Заметим, что интерфейс между клиентской частью приложения и клиентской частью сервера баз данных, как правило, основан на использовании языка SQL. Поэтому такие функции, как, например, предварительная обработка форм, предназначенных для запросов к базе данных, или формирование результирующих отчетов выполняются в коде приложения.

    Наконец, клиентская часть сервера баз данных, используя средства сетевого доступа, обращается к серверу баз данных, передавая ему текст оператора языка SQL.

    Посмотрим теперь, что же происходит на стороне сервера баз данных. В продуктах практически всех компаний сервер получает от клиента текст оператора на языке SQL.

    Сервер производит компиляцию полученного оператора.

    Далее (если компиляция завершилась успешно) происходит выполнение оператора.

    Разработчики и пользователи информационных систем, основанных на архитектуре "клиент-сервер", часто бывают неудовлетворены постоянно существующими сетевыми накладными расходами, которые следуют из потребности обращаться от клиента к серверу с каждым очередным запросом. На практике распространена ситуация, когда для эффективной работы отдельной клиентской составляющей информационной системы в действительности требуется только небольшая часть общей базы данных. Это приводит к идее поддержки локального кэша общей базы данных на стороне каждого клиента.

    Фактически, концепция локального кэширования базы данных является частным случаем концепции реплицированных баз данных. Как и в общем случае, для поддержки локального кэша базы данных программное обеспечение рабочих станций должно содержать компонент управления базами данных – упрощенный вариант сервера баз данных, который, например, может не обеспечивать многопользовательский режим доступа. Отдельной проблемой является обеспечение согласованности (когерентности) кэшей и общей базы данных. Здесь возможны различные решения – от автоматической поддержки согласованности за счет средств базового программного обеспечения управления базами данных до полного перекладывания этой задачи на прикладной уровень.

    Преимуществами данной архитектуры являются:

    • возможность, в большинстве случаев, распределить функции вычислительной системы между несколькими независимыми компьютерами в сети;

    • все данные хранятся на сервере, который, как правило, защищен гораздо лучше большинства клиентов, а также на сервере проще обеспечить контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа;

    • поддержка многопользовательской работы;

    • гарантия целостности данных.

    Недостатки:

    • неработоспособность сервера может сделать неработоспособной всю вычислительную сеть;

    • администрирование данной системы требует квалифицированного профессионала;

    • высокая стоимость оборудования;

    • бизнес логика приложений осталась в клиентском ПО.

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

    Увеличение масштабов информационной системы не порождает принципиальных проблем. Обычным решением является замена аппаратуры сервера (и, может быть, аппаратуры рабочих станций, если требуется переход к локальному кэшированию баз данных). В любом случае практически не затрагивается прикладная часть информационной системы.

    Также данный вид архитектуры называют архитектурой с "толстым" клиентом.

    23. Требования к аппаратным средствам ос Linux.

    Одним из плюсов операционной системы Linux являются ее крайне малые требования к аппаратным средствам: процессор 80386SX-25, 4 Мбайт оперативной памяти и 80 Мбайт свободного дискового пространства хватит для выполнения большинства прикладных программ. Естественно, что увеличение размера оперативной памяти и более мощный процессор в должной мере повлияют на эффективность и быстродействие системы.

    Для работы с графической системой X Window вам потребуется хотя бы 8 Mбайт оперативной памяти. Если вы планируете запускать несколько одновременно работающих программ, то 16 Mбайт хватит для того, чтобы снизить активность своппирования. В целом же для одного пользователя на машине вполне достаточно 32 Mбайт памяти (сравните с требованиями для спокойной работы в Windows 95/98).

    Размер дискового пространства зависит от устанавливаемых программ. Для стандартного набора UNIX-команд и средств администрирования достаточно 10 Mбайт. При установке дистрибутивов RedHat, Debian или другого потребуется от 60 до 600 Mбайт дискового пространства, в зависимости от дистрибутива и установленных программ. Не стоит забывать и о месте под своппинг.

    Требования к процессору также очень скромны и в то же время разнообразны - от 386 до Pentium III, при этом не столь важно, кто производитель процессора, подходят как процессоры Intel, так и AMD, Cyrix, Texas Instruments и т. д. Помимо этого Linux можно установить даже на процессор 80286 и ниже, используя специальную версию ядра - ELKS (Embeddable Linux Kernel Subset), однако высокой производительности не стоит ожидать. Существуют реализации Linux для процессоров Amiga и Atari 680x0, DEC Alpha, SPARC, PowerPC, и для архитектур Arm, StrongARM и MIPS.

    Относительно архитектур Linux поддерживает шины PCI, ISA, EISA и VLB. Поддержка шины MCA, используемой на машинах класса PS/2, не полная (а в ранних версиях ядра данная поддержка полностью отсутствовала), однако работы по ее улучшению ведутся до сих пор. Следует отметить, что Linux устанавливает более высокие требования к аппаратным средствам, чем DOS, Windows и другие операционные системы. Устройство, без сбоев работающее под управлением какой-нибудь другой, менее требовательной ОС, может вызывать проблемы в Linux.

    Linux поддерживает до 1 Гбайт оперативной памяти на платформах Intel.Увеличение оперативной памяти без увеличения кэш-памяти зачастую приводит к снижению быстродействия системы под управлением Linux. Однако для систем с оперативной памятью до 64 Mбайт это не так уж важно, поскольку большинство популярных микросхем поддерживают кэширование 64 Mбайт.

    24. Программы для Linux.

    Операционную систему Linux можно использовать для разработки программ любых типов. В настоящее время существуют следующие виды программного обеспечения для Linux.

    Текстовые редакторы. Кроме коммерческих текстовых редакторов, наподобие WordPerfect StarOffice или Applixware, Linux содержит собственные мощные средства редактирования текстовых файлов, а также программы обработки текстов в автоматическом режиме.

    Языки программирования. Имеется множество языков программирования и подготовки сценариев, а также иных средств, предназначенных для Linux и всех операционных систем.

    Unix. Обилие средств программирования упрощает разработку программ, выполняемых не только в Linux, но и в большинстве операционных систем Unix.

    Оболочка X Windows. Ответом Unix на графический пользовательский интерфейс (GUT) явилась оболочка X Windows. Это гибкая и конфигурируемая среда, работающая как в Linux, так и в большинстве систем Unix. Множество программ, выполняемых в X Windows, превращают Linux в простую и удобную операционную систему.

    Средства Internet. Linux не только поддерживает известные программы наподобие Netscape Communicator или Mosaic, но и содержит собственное программное обеспечение для Internet. Это текстовые и графические программы чтения электронной почты, полный набор программного обеспечения для создания серверов Internet (Web-серверов, серверов электронной почты и новостей). Обеспечивается, полная поддержка подключения к Internet через локальную сеть или модем.

    Базы данных. Подобно всем платформам Unix, Linux предоставляет надежную основу для систем баз данных клиент-сервер. Linux всегда поддерживал СУБД наподобие mSQL и PostgreSQL. С ростом популярности системы, особенно в среде корпоративных информационных систем, увеличивалось количество серверов коммерческих реляционных баз данных для Linux. Сегодня реляционные базы данных для Linux предлагаются такими компаниями, как Oracle, Sybase и Informix.

    Программное обеспечение совместимости с DOS и Windows. С высокой степенью устойчивости в Linux можно выполнять программы для DOS (см. гл. 30). Существует несколько способов выполнения программ для Windows. Текст этой книги написан в Microsoft Word для Windows на компьютере, работающем под управлением Linux. Это прекрасная иллюстрация способности Linux работать с Windows. Существуют эмуляторы других популярных операционных систем, в том числе Macintosh и Atari ST.

    25.Файловые системы в unix

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

    Файловая система - это еще и принцип организации файлов как таковых: в этом контексте говорят о файловой системе Unix или FAT, HPFS или NTFS. И, наконец, файловая система - это физический способ организации данных на некоем устройстве. Он, как правило, специфичен для конкретной ОС. Linux способна работать, с "родными" с несколькими файловыми системами, начиная от традиционной ext2fs до XFS и JFS, разработанных для ОС IRIX и AIX.

    Существуют еще и виртуальные файловые системы. К ним относятся уже упоминавшаяся файловая система устройств devfs и временная файловая система в оперативной памяти tmpfs, и procfs, ответственная за представление в виде файловой системы процессов, протекающих в машине.

    Наконец, файловая система в Unix - это и логическая структура каталогов и файлов, которая может объединять физические и виртуальные файловые системы самых различных типов (например, дисковые разделы с файловыми системами ext2fs и FAT16, виртуальные procfs, devfs и tmpfs), причем не только на локальной машине, но и на любой удаленной. Эта структура: иерархическая, или древовидная, начинающаяся с корневого каталога, родительского по отношению ко всем прочим, от которого ответвляются отдельные файлы и дочерние каталоги, которые, в свою очередь, могут выступать как родительские по отношению к подкаталогам более глубоких уровней вложенности.

    В ОС Linux структура файловой системы обычно специфична для конкретного дистрибутива или их группы, связанной единством происхождения, поэтому нередко можно столкнуться с такими выражениями, как файловая система Red Hat или Debian. Собственно, именно исторически сложившиеся различия в иерархии каталогов являются одним из критериев обособления нескольких линий дистрибутивов Linux. Однако можно надеяться, что усилиями стандартизирующих организаций, таких, как Linux Standard Base и Filesystem Hierarchy Standard, увенчаются успехом, и можно будет говорить о единой логической файловой системе Linux, подобно тому, как это имеет место в линейке BSD.

    Файлы и каталоги

    В большинстве операционных систем (включая систему Linux) используется понятие файла (file). Файл═ — это некоторый «кусок» информации, которому дано имя, называемое именем файла (filename). Примерами файлов могут служить работа по истории, послание, пришедшее по электронной почте, а также исполняемая программа. Нужно знать, что на диске информация сохраняется только в виде отдельных файлов.

    Файлы различаются по своим именам. Например, свой файл с работой по истории вы можете назвать history-paper. В этих случаях имя файла выбирается таким, чтобы оно каким-то образом характеризовало содержимое данного файла. Для имён файлов нет такого стандартного формата, какой есть в системе MS-DOS и в некоторых других операционных системах. В принципе, имя файла может содержать любые символы (за исключением символа /═ — смысл этого символа будет разъяснён ниже). Длина имени файла ограничена 256 знаками.

    Понятие файла тесно связано с понятием каталога (directory). Каталог═ — это набор файлов. Иногда каталог называют «папка», по аналогии с папкой, в которой содержится много различных листов. Однако эта аналогия не вполне точна, поскольку каталог содержит не собственно файлы, а ссылки на файлы, а также и на другие каталоги. Более подходящая аналогия — библиотечный каталог или картотека. Каталогам даются имена, по которым их можно распознавать. Кроме этого, каталоги образуют структуру типа дерева; иными словами, существует единственный корневой каталог, который содержит внутри себя все остальные каталоги.

    Как следствие, к файлу можно обращаться, указывая путь (path) к этому файлу. Путь состоит из имени каталога, за которым пишется имя файла. Пусть, например, у пользователя Ларри есть каталог papers, в котором содержится три файла: history-final, english-lit, masters-thesis. Каждый из этих трёх файлов содержит информацию о трёх работах, которыми в данный момент занимается Ларри. Чтобы обратиться к файлу english-lit, Ларри может указать путь к файлу, например, следующим образом:

    papers/english-lit

    При указании пути, как можно увидеть, имена каталога и файла разделяются символом /. По этой причине имена файлов не могут содержать этот символ. Пользователям системы MS-DOS будет знакома эта система обозначений, хотя в системе MS-DOS вместо символа / используется так называемый «обратный слэш» (\).

    Как указывалось выше, каталоги могут быть вложены друг в друга. Пусть, например, в одном каталоге papers имеется другой каталог с именем notes. Каталог notes содержит файлы math-notes и cheat-sheet. Путь к файлу cheat-sheet представляется следующим образом:

    papers/notes/cheat-sheet

    Мы видим, что путь к файлу напоминает описание пути в лабиринте. Каталог, который содержит данный подкаталог, обычно называется родительским каталогом (parent directory). В данном примере каталог papers является родительским для каталога notes.

    26.Команды Linux

    Количество команд, доступных в обычном дистрибутиве, достаточно велико. Но даже высококвалифицированный пользователь постоянно пользуется лишь некоторыми командами.

    Рассмотрим некоторые из наиболее часто используемых команд Linux. Они применяются для выполнения множества задач: от перехода из каталога в каталог до определения программ, выполняемых в системе, или поиска файлов. Мы рассмотрим следующие команды:

    SU

    pwd, cd и Is

    more и less

    find, locate, whereis и grep

    tar и gzip

    man

    Su. Это одна из основных команд, которой можно воспользоваться в различных ситуациях. Обычно команда su используется для переключения пользователей. Команда su используется также для получения прав корневого пользователя, если предстоит выполнение административных задач – создание или редактирование учетных записей пользователей, конфигурирование сети или принтеров.

    Pwd, cd и ls. Основное их назначение – работа с каталогами и файлами.

    Первая команда – pwd (present working directory - текущий рабочий каталог). Набрав ее в командной строке и нажав Enter, можно узнать свой текущий каталог. Команда cd не только определяет текущее состояние, но и изменяет его. По этой команде выполняется переход из текущего каталога в любой другой (доступный). Наконец, команда Is предназначена для просмотра содержимого текущего каталога.

    More и less. Команды more (больше) и less (меньше) тесно связаны и функционально подобны. Интересно, что у той, которая называется "меньше", возможностей больше. Основное назначение этих команд – вывод на экран или в окно текста большого объема по частям, чтобы его можно было листать в обоих направлениях, а также поиск в этом тексте. Это удобно во многих случаях: при просмотре большого текстового файла без запуска текстового редактора или длинного списка содержимого каталога.

    More – это основная команда постраничной или построчной прокрутки большого текста на экране и поиска в этом тексте. Команда less – усовершенствованный вариант команды more. В дополнение к функциям, описанным выше (постраничная или построчная прокрутка текста от начала до конца и поиск), команда less позволяет выполнять следующие операции:

    переход на указанную строку;

    переход в начало или конец текста;

    прокрутка текста от конца к началу;

    поиск в обратном направлении.

    27. Права доступа к файлам и каталогам ос Linux

    Поскольку Linux — система многопользовательская, вопрос об организации разграничения доступа к файлам и каталогам является одним из существенных вопросов, которые должна решать операционная система. Механизмы разграничения доступа, разработанные для системы UNIX в 70-х годах (возможно, впрочем, они предлагались кем-то и раньше), очень просты, но они оказались настолько эффективными, что просуществовали уже более 30 лет и по сей день успешно выполняют стоящие перед ними задачи.

    В основе механизмов разграничения доступа лежат имена пользователей и имена групп пользователей. Вы уже знаете, что в Linux каждый пользователь имеет уникальное имя, под которым он входит в систему (логируется). Кроме того, в системе создается некоторое число групп пользователей, причем каждый пользователь может быть включен в одну или несколько групп. Создает и удаляет группы суперпользователь, он же может изменять состав участников той или иной группы. Члены разных групп могут иметь разные права по доступу к файлам, например, группа администраторов может иметь больше прав, чем группа программистов.

    В индексном дескрипторе каждого файла записаны имя так называемого владельца файла и группы, которая имеет права на этот файл. Первоначально, при создании файла его владельцем объявляется тот пользователь, который этот файл создал. Точнее — тот пользователь, от чьего имени запущен процесс, создающий файл. Группа тоже назначается при создании файла — по идентификатору группы процесса, создающего файл. Владельца и группу файла можно поменять в ходе дальнейшей работы с помощью команд chown и chgrp (подробнее о них будет сказано чуть позже).

    Теперь давайте еще раз выполним команду ls -l. Но зададим ей в качестве дополнительного параметра имя конкретного файла, например, файла, задающего саму команду ls. (Обратите, кстати, внимание на эту возможность команды ls -l — получить информацию о конкретном файле, а не о всех файлах каталога сразу).

    [user]$ ls -l /bin/ls

    -rwxr-xr-x 1 root root 49940 Sep 12 1999 /bin/ls

    Вы видите, что в данном случае владельцем файла является пользователь root и группа root. Но нас сейчас в выводе этой команды больше интересует первое поле, определяющее тип файла и права доступа к файлу. Это поле в приведенном примере представлено цепочкой символов -rwxr-xr-x. Эти символы можно условно разделить на 4 группы.

    Первая группа, состоящая из единственного символа, определяет тип файла. Этот символ в соответствии с возможными типами файлов, рассмотренными в предыдущем разделе, может принимать такие значения:

    - = — обычный файл;

    d = — каталог;

    b = — файл блочного устройства;

    c = — файл символьного устройства;

    s = — доменное гнездо (socket);

    p = — именованный канал (pipe);

    l = — символическая ссылка (link).

    Далее следуют три группы по три символа, которые и определяют права доступа к файлу соответственно для владельца файла, для группы пользователей, которая сопоставлена данному файлу, и для всех остальных пользователей системы. В нашем примере права доступа для владельца определены как rwx, что означает, что владелец (root) имеет право читать файл (r), производить запись в этот файл (w), и запускать файл на выполнение (x). Замена любого из этих символов прочерком будет означать, что пользователь лишается соответствующего права. В том же примере мы видим, что все остальные пользователи (включая и тех, которые вошли в группу root) лишены права записи в этот файл, т. е. не могут файл редактировать и вообще как-то изменять.

    Вообще говоря, права доступа и информация о типе файла в UNIX-системах хранятся в индексных дескрипторах в отдельной структуре, состоящей из двух байтов, т. е. из 16 бит (это естественно, ведь компьютер оперирует битами, а не символами r, w, x). Четыре бита из этих 16-ти отведены для кодированной записи о типе файла. Следующие три бита задают особые свойства исполняемых файлов, о которых мы скажем чуть позже. И, наконец, оставшиеся 9 бит определяют права доступа к файлу. Эти 9 бит разделяются на 3 группы по три бита. Первые три бита задают права пользователя, следующие три бита — права группы, последние 3 бита определяют права всех остальных пользователей (т. е. всех пользователей, за исключением владельца файла и группы файла).

    При этом, если соответствующий бит имеет значение 1, то право предоставляется, а если он равен 0, то право не предоставляется. В символьной форме записи прав единица заменяется соответствующим символом (r, w или x), а 0 представляется прочерком.

    Право на чтение (r) файла означает, что пользователь может просматривать содержимое файла с помощью различных команд просмотра, например, командой more или с помощью любого текстового редактора. Но, подредактировав содержимое файла в текстовом редакторе, вы не сможете сохранить изменения в файле на диске, если не имеете права на запись (w) в этот файл. Право на выполнение (x) означает, что вы можете загрузить файл в память и попытаться запустить его на выполнение как исполняемую программу. Конечно, если в действительности файл не является программой (или скриптом shell), то запустить этот файл на выполнение не удастся, но, с другой стороны, даже если файл действительно является программой, но право на выполнение для него не установлено, то он тоже не запустится.

    Вот мы и узнали, какие файлы в Linux являются исполняемыми! Как видите, расширение имени файла тут не при чем, все определяется установкой атрибута "исполняемый", причем право на исполнение может быть предоставлено не всем!

    Если выполнить ту же команду ls -l, но в качестве последнего аргумента ей указать не имя файла, а имя каталога, мы увидим, что для каталогов тоже определены права доступа, причем они задаются теми же самыми символами rwx. Например, выполнив команду ls –l /, мы увидим, что каталогу bin соответствует строка:

    drwxr-xr-x 2 root root 2048 Jun 21 21:11 bin

    Естественно, что по отношению к каталогам трактовка понятий "право на чтение", "право на запись" и "право на выполнение" несколько изменяется. Право на чтение по отношению к каталогам легко понять, если вспомнить, что каталог — это просто файл, содержащий список файлов в данном каталоге. Следовательно, если вы имеете право на чтение каталога, то вы можете просматривать его содержимое (этот самый список файлов в каталоге). Право на запись тоже понятно — имея такое право, вы сможете создавать и удалять файлы в этом каталоге, т. е. просто добавлять в каталог или удалять из него запись, содержащую имя какого-то файла и соответствующие ссылки. Право на выполнение интуитивно менее понятно. Оно в данном случае означает право переходить в этот каталог. Если вы, как владелец, хотите дать доступ другим пользователям на просмотр какого-то файла в своем каталоге, вы должны дать им право доступа в каталог, т. е. дать им "право на выполнение каталога". Более того, надо дать пользователю право на выполнение для всех каталогов, стоящих в дереве выше данного каталога. Поэтому в принципе для всех каталогов по умолчанию устанавливается право на выполнение как для владельца и группы, так и для всех остальных пользователей. И, уж если вы хотите закрыть доступ в каталог, то лишите всех пользователей (включая группу) права входить в этот каталог. Только не лишайте и себя такого права, а то придется обращаться к суперпользователю! (Примеч.11)

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

    Алгоритм проверки прав пользователя при обращении к файлу можно описать следующим образом. Система вначале проверяет, совпадает ли имя пользователя с именем владельца файла. Если эти имена совпадают (т. е. владелец обращается к своему файлу), то проверяется, имеет ли владелец соответствующее право доступа: на чтение, на запись или на выполнение (не удивляйтесь, суперпользователь может лишить некоторых прав и владельца файла). Если право такое есть, то соответствующая операция разрешается. Если же нужного права владелец не имеет, то проверка прав, предоставляемых через группу или через группу атрибутов доступа для остальных пользователей, уже даже не проверяются, а пользователю выдается сообщение о невозможности выполнения затребованного действия (обычно что-то вроде "Permission denied").

    Если имя пользователя, обращающегося к файлу, не совпадает с именем владельца, то система проверяет, принадлежит ли владелец к группе, которая сопоставлена данному файлу (далее будем просто называть ее группой файла). Если принадлежит, то для определения возможности доступа к файлу используются атрибуты, относящиеся к группе, а на атрибуты для владельца и всех остальных пользователей внимания не обращается. Если же пользователь не является владельцем файла и не входит в группу файла, то его права определяются атрибутами для остальных пользователей. Таким образом, третья группа атрибутов, определяющих права доступа к файлу, относится ко всем пользователям, кроме владельца файла и пользователей, входящих в группу файла.

    Для изменения прав доступа к файлу используется команда chmod. Ее можно использовать в двух вариантах. В первом варианте вы должны явно указать, кому какое право даете или кого этого права лишаете:

    [user]$ chmod wXp имя-файла

    где вместо символа w подставляется

    либо символ u (т. е. пользователь, который является владельцем);

    либо g (группа);

    либо o (все пользователи, не входящие в группу, которой принадлежит данный файл);

    либо a (все пользователи системы, т. е. и владелец, и группа, и все остальные).

    Вместо X ставится:

    либо + (предоставляем право);

    либо (лишаем соответствующего права);

    либо = (установить указанные права вместо имеющихся),

    Вместо p — символ, обозначающий соответствующее право:

    r (чтение);

    w (запись);

    x (выполнение).

    Вот несколько примеров использования команды chmod:

    [user]$ chmod a+x file_name

    предоставляет всем пользователям системы право на выполнение данного файла.

    [user]$ chmod go-rw file_name

    удаляет право на чтение и запись для всех, кроме владельца файла.

    [user]$ chmod ugo+rwx file_name

    дает всем права на чтение, запись и выполнение.

    Если опустить указание на то, кому предоставляется данное право, то подразумевается, что речь идет вообще обо всех пользователях, т. е. вместо

    [user]$ chmod a+x file_name

    можно записать просто

    [user]$ chmod +x file_name

    Второй вариант задания команды chmod (он используется чаще) основан на цифровом представлении прав. Для этого мы кодируем символ r цифрой 4, символ w — цифрой 2, а символ x — цифрой 1. Для того, чтобы предоставить пользователям какой-то набор прав, надо сложить соответствующие цифры. Получив, таким образом, нужные цифровые значения для владельца файла, для группы файла и для всех остальных пользователей, задаем эти три цифры в качестве аргумента команды chmod (ставим эти цифры после имени команды перед вторым аргументом, который задает имя файла). Например, если надо дать все права владельцу (4+2+1=7), право на чтение и запись — группе (4+2=6), и не давать никаких прав остальным, то следует дать такую команду:

    [user]$ chmod 760 file_name

    Если вы знакомы с двоичным кодированием восьмеричных цифр, то вы поймете, что цифры после имени команды в этой форме ее представления есть не что иное, как восьмеричная запись тех самых 9 бит, которые задают права для владельца файла, группы файла и для всех пользователей.

    Выполнять смену прав доступа к файлу с помощью команды chmod может только сам владелец файла или суперпользователь. Для того, чтобы иметь возможность изменить права группы, владелец должен дополнительно быть членом той группы, которой он хочет дать права на данный файл.

    Чтобы завершить рассказ о правах доступа к файлам, надо рассказать еще о трех возможных атрибутах файла, устанавливаемых с помощью той же команды chmod. Это те самые атрибуты для исполняемых файлов, которые в индексном дескрипторе файла в двухбайтовой структуре, определяющей права на файл, занимают позиции 5-7, сразу после кода типа файла.

    Первый из этих атрибутов — так называемый "бит смены идентификатора пользователя". Смысл этого бита состоит в следующем.

    Обычно, когда пользователь запускает некоторую программу на выполнение, эта программа получает те же права доступа к файлам и каталогам, которые имеет пользователь, запустивший программу. Если же установлен "бит смены идентификатора пользователя", то программа получит права доступа к файлам и каталогам, которые имеет владелец файла программы (таким образом, рассматриваемый атрибут лучше называть "битом смены идентификатора владельца"). Это позволяет решать некоторые задачи, которые иначе было бы трудно выполнить. Самый характерный пример — команда смены пароля passwd. Все пароли пользователей хранятся в файле /etc/passwd, владельцем которого является суперпользователь root. Поэтому программы, запущенные обычными пользователями, в том числе команда passwd, не могут производить запись в этот файл. А, значит, пользователь как бы не может менять свой собственный пароль. Но для файла /usr/bin/passwd установлен "бит смены идентификатора владельца", каковым является пользователь root. Следовательно, программа смены пароля passwd запускается с правами root и получает право записи в файл /etc/passwd (уже средствами самой программы обеспечивается то, что пользователь может изменить только одну строку в этом файле).

    Установить "бит смены идентификатора владельца" может суперпользователь с помощью команды

    [root]# chmod +s file_name

    Аналогичным образом работает "бит смены идентификатора группы".

    Еще один возможный атрибут исполняемого файла — это "бит сохранения задачи" или "sticky bit" (дословно — "бит прилипчивости"). Этот бит указывает системе, что после завершения программы надо сохранить ее в оперативной памяти. Удобно включить этот бит для задач, которые часто вызываются на выполнение, так как в этом случае экономится время на загрузку программы при каждом новом запуске. Этот атрибут был необходим на старых моделях компьютеров. На современных быстродействующих системах он используется редко.

    Если используется цифровой вариант задания атрибутов в команде chmod, то цифровое значение этих атрибутов должно предшествовать цифрам, задающим права пользователя:

    [root]# chmod 4775 file_name

    При этом веса этих битов для получения нужного суммарного результата задаются следующим образом:

    4 — "бит смены идентификатора пользователя",

    2 — "бит смены идентификатора группы",

    1 — "бит сохранения задачи (sticky bit)".

    Если какие-то из этих трех битов установлены в 1, то несколько изменяется вывод команды ls -l в части отображения установленных атрибутов прав доступа. Если установлен в 1 "бит смены идентификатора пользователя", то символ "x" в группе, определяющей права владельца файла, заменяется символом "s". Причем, если владелец имеет право на выполнение файла, то символ "x" заменяется на маленькое "s", а если владелец не имеет права на выполнение файла (например, файл вообще не исполняемый), то вместо "x" ставится "S". Аналогичные замены имеют место при задании "бита смены идентификатора группы", но заменяется символ "x" в группе атрибутов, задающих права группы. Если равен 1 "бит сохранения задачи (sticky bit)", то заменяется символ "x" в группе атрибутов, определяющей права для всех остальных пользователей, причем "x" заменяется символом "t", если все пользователи могут запускать файл на выполнение, и символом "T", если они такого права не имеют.

    Таким образом, хотя в выводе команды ls -l не предусмотрено отдельных позиций для отображения значений битов смены идентификаторов и бита сохранения задачи, соответствующая информация выводится. Вот небольшой пример того, как это будет выглядеть:

    [root]# ls -l prim1

    -rwSrwsrwT 1 kos root 12 Dec 18 23:17 prim1

    28. Основные задачи системного администрирования. Процессы и их идентификаторы

    К обязанностям системного администратора обычно относят следующие задачи:

    • подключение и настройка аппаратных устройств;

    • установка и обновление программного обеспечения;

    • запуск и настройка общесистемных сервисов (конфигурирование системы);

    • управление пользователями;

    • управление процессами;

    • распределение ресурсов;

    • обеспечение безопасности.

    Процесс загрузки ОС во многом определяет режим последующей работы системы и ее конфигурацию. Если вы умеете влиять на процесс загрузки, значит, вы уже сможете добиться желаемой конфигурации системы после загрузки.

    Но для понимания процедуры начальной загрузки необходимо иметь самое общее представление о том, что такое процесс в системе, поскольку это понятие будет постоянно использоваться в дальнейшем.

    В самом первом приближении можно считать, что процесс — это загруженная в оперативную память программа. Но это не совсем точно, правильнее было бы сказать, что "процесс выполняет программу". Дело в том, что в Linux вначале запускается процесс, который загружает в оперативную память программу из указанного ему файла и начинает ее выполнять. Это означает, что каждый процесс должен быть запущен (как говорят — "порожден") каким-то другим процессом. То есть для каждого процесса однозначно определен его "родитель" (или "предок"), для которого данный процесс является "дочерним" (или "потомком"). Если вы хотите увидеть "дерево" запущенных в вашей системе процессов, выполните команду pstree. Вывод этой команды позволяет увидеть, что "отцом" всех процессов в системе (или "корнем дерева процессов") является процесс init, который первым запускается после загрузки ядра.

    Каждый процесс в системе имеет уникальный идентификатор — PID, назначаемый процессу при запуске. Процесс с идентификатором 1 выполняет программу init. Именно по этим идентификаторам система различает процессы. Каждый запущенный процесс в любой момент времени находится в одном из следующих состояний:

    • активен (R);

    • приостановлен (T);

    • "спит" (S).

    Текущее состояние процесса называют статусом процесса.

    Кроме идентификатора и статуса для каждого процесса в специальных структурах ядра сохраняются следующие данные (приводимый ниже перечень является далеко не полным):

    • полная командная строка запуска выполняемой процессом задачи;

    • информация об отведенном процессу адресном пространстве;

    • ссылка на текущий рабочий каталог и корневой каталог процесса (последний служит для ограничения доступа процесса к файловой структуре);

    • таблица открытых процессом файлов;

    • так называемое окружение процесса, т. е. перечень заданных для данного процесса переменных с их текущими значениями;

    • атрибуты, определяющие права и привилегии процесса,

    • таблица обработчиков сигналов;

    • указание на родительский процесс;

    • пользовательская маска (umask) или маска доступа — указание на то, какие права надо удалить при создании нового файла или каталога из стандартного набора прав, присваиваемых файлу (каталогу).

    Поскольку Linux — система многозадачная, одновременно может быть запущено много процессов. Впрочем, слово "одновременно" здесь применено не совсем корректно, поскольку на самом деле в каждый момент времени выполняется только один процесс. (Для точности следует заметить, что в многопроцессорных системах, на которых Linux тоже может работать, одновременно могут выполняться несколько процессов, но мы рассматриваем только однопроцессорные системы). Планировщик процессов выделяет каждому процессу небольшой квант времени и по истечении этого кванта передает управление следующему процессу. Кванты времени, выделяемые каждому процессу, так малы, что у пользователя создается иллюзия одновременного выполнения многих процессов. А для того, чтобы некоторые, наиболее важные процессы, получали больше процессорного времени, для каждого процесса установлен приоритет.

    Пользователи могут "общаться" с процессами путем посылки им сигналов. Процессы тоже общаются друг с другом посредством сигналов. Когда мы нажимаем комбинацию клавиш <Ctrl>+<C>, чтобы завершить выполнение какой-то программы, мы фактически посылаем соответствующему процессу сигнал "Завершить работу". Завершаясь, процесс посылает родительскому процессу сигнал о своем завершении. Но бывают случаи, когда родительский процесс завершается раньше дочернего. Процессы, не имеющие родителя, называются "сиротами". "Сироты" автоматически усыновляются процессом init, который и принимает сигналы об их завершении. Если процесс-родитель по каким-то причинам не может принять сигнал о завершении дочернего процесса, то процесс-потомок превращается в "зомби" и получает статус Z. Процессы-зомби не занимают процессорного времени (т. е. их выполнение прекращается), но соответствующие им структуры ядра не освобождаются. Уничтожение таких процессов — одна из обязанностей системного администратора. Наконец, процесс может надолго "впасть в сон", прервать который не удается. Статус таких процессов обозначается символом D. Уничтожить их удается только при перезагрузке системы.

    Особым видом процессов являются домены. Вообще-то в них нет ничего особого. Это просто процессы, выполняющиеся в фоновом режиме, без вывода каких-либо данных на терминал. Домены обычно используются для выполнения сервисных функций, обслуживания запросов от других процессов, причем не обязательно выполняющихся на данном компьютере.

    Надо еще упомянуть, что процессы могут запускать ("внутри себя") отдельные нити (thread), или потоки. Нити — это параллельно выполняемые части одной программы, которые в Linux реализованы как процессы, запускаемые со специальным флагом. С точки зрения системы они отличаются от других процессов только тем, что для них не создается отдельное окружение, они выполняются в среде родительского процесса.

    29. Использование загрузчика lilo

    Загрузчик LILO создан Вернером Альмесбергером (Werner Almesberger). LILO может загружать ядро Linux как с дискеты, так и с жесткого диска, а также может загружать другие операционные системы: PC/MS-DOS, DR DOS, OS/2, Windows 95/98, Windows NT, 386BSD, SCO UNIX, Unixware и т. д. Может быть задан выбор до 16 разных операционных систем на этапе загрузки.

    LILO представляет собой комплект из нескольких программ: собственно загрузчика, программ, используемых для установки и настройки загрузчика, и служебных файлов:

    • программа /sbin/lilo, которая запускается из-под Linux, служит для того, чтобы записать всю информацию, необходимую на этапе загрузки, в соответствующие места. Ее необходимо перезапускать каждый раз после внесения изменений в ядро или в конфигурационный файл LILO;

    • различные служебные файлы, которые нужны LILO во время загрузки. Эти файлы обычно располагаются в каталоге /boot. Самые важные из них — это собственно загрузчик (смотри ниже) и map-файл (/boot/map), в котором указывается местоположение ядра. Еще один важный файл — это файл конфигурации LILO, который обычно имеет имя /etc/lilo.conf;

    • собственно загрузчик — это та часть LILO, которая первой загружается в память через прерывание BIOS, и которая загружает ядро Linux или загрузочный сектор другой операционной системы. Загрузчик тоже состоит из двух частей. Первая часть записывается в загрузочный сектор и служит для загрузки второй части, которая значительно больше по размеру. Обе части обычно хранятся на диске в файле /boot/boot.b.

    Надо иметь в виду, что формат загрузочного сектора, создаваемого LILO, отличается от формата DOS MBR, так что если записать загрузочный сектор LILO в MBR, то ранее установленные системы от Microsoft перестанут загружаться (если не принять дополнительных мер).

    Загрузочный сектор LILO спроектирован так, чтобы его можно было использовать как загрузочный сектор раздела, в частности, в нем есть место для таблицы разделов.

    Загрузочный сектор LILO при инсталляции системы можно разместить в следующих местах:

    • загрузочный сектор дискеты в формате Linux (/dev/fd0, ...);

    • MBR первого жесткого диска (/dev/hda, /dev/sda, ...);

    • загрузочный сектор первичного раздела файловой системы Linux на первом жестком диске (/dev/hda1, /dev/hda2, ...);

    • загрузочный сектор логического раздела в расширенном разделе первого жесткого диска (/dev/hda5, ...). Правда большинство программ типа fdisk не предполагают, что можно загружаться из расширенного раздела и отказываются объявлять его активным. Поэтому в состав LILO включена специальная программа (activate), которая позволяет обойти это ограничение. Но программа fdisk из дистрибутива Linux поддерживает возможность активизации расширенного раздела. Для этого надо использовать либо опцию -b, либо переменную BOOT.

    Загрузочный сектор LILO не может быть размещен в следующих местах:

    • загрузочный сектор дискеты или первичного раздела, отформатированных в других файловых системах;

    • в swap-разделе Linux;

    • на втором жестком диске.

    Кроме того, имейте в виду, что LILO во время загрузки нужны еще следующие файлы:

    • /boot/boot.b;

    • /boot/map (создается при запуске /sbin/lilo);

    • все загружаемые версии ядра (если вы выбираете версию ядра на этапе загрузки);

    • загрузочные сектора других операционных систем, которые будут загружаться через LILO;

    • выдаваемые при загрузке сообщения (если таковые определены).

    Следовательно, как загрузочный сектор LILO, так и перечисленные файлы (в том числе те, которые вы будете устанавливать впоследствии) должны находиться в пределах первых 1024 цилиндров на жестком диске, так как они должны быть доступны через BIOS.

    Начиная с версии 21, LILO выводит на экран меню выбора загружаемой системы (раньше надо было для вызова меню нажимать клавишу табуляции).

    30. Основные характеристики ос Linux

    В силу того, что исходные коды Linux распространяются свободно и общедоступны, к развитию системы с самого начала подключилось большое число независимых разработчиков. Благодаря этому на сегодняшний момент Linux — самая современная, устойчивая и быстроразвивающаяся система, почти мгновенно вбирающая в себя самые последние технологические новшества. Она обладает всеми возможностями, которые присущи современным полнофункциональным операционным системам типа UNIX. Приведем краткий список этих возможностей.

    Реальная многозадачность. Все процессы независимы; ни один из них не должен мешать выполнению других задач. Для этого ядро осуществляет режим разделения времени центрального процессора, поочередно выделяя каждому процессу интервалы времени для выполнения. Это существенно отличается от режима "вытесняющей многозадачности", реализованной в Windows 95, когда процесс должен сам "уступить" процессор другим процессам (и может сильно задержать их выполнение).

    Многопользовательский доступ. Linux — не только многозадачная ОС, она поддерживает возможность одновременной работы многих пользователей. При этом Linux может предоставлять все системные ресурсы пользователям, работающим с хостом через различные удаленные терминалы.

    Свопирование оперативной памяти на диск. Свопирование оперативной памяти на диск позволяет работать при ограниченном объеме физической оперативной памяти; для этого содержимое некоторых частей (страниц) оперативной памяти записываются в выделенную область на жестком диске, которая трактуется как дополнительная оперативная память. Это несколько снижает скорость работы, но позволяет организовать работу программ, требующих большего объема ОЗУ, чем фактически имеется в компьютере.

    Страничная организация памяти. Системная память Linux организована в виде страниц объемом 4K. Если оперативная память полностью исчерпана, ОС будет искать давно не использованные страницы памяти для их перемещения из памяти на жесткий диск. Если какие-либо из этих страниц становятся нужны, Linux восстанавливает их с диска. Некоторые старые Unix-системы и некоторые современные платформы (включая Microsoft Windows) переносят на диск все содержимое ОП, относящееся к неработающему в данный момент приложению, (т. е. ВСЕ страницы памяти, относящиеся к приложению, сохраняются на диске при нехватке памяти) что менее эффективно.

    Загрузка выполняемых модулей "по требованию". Ядро Linux поддерживает выделение страниц памяти по требованию, при котором только необходимая часть кода исполняемой программы находится в оперативной памяти, а не используемые в данный момент части остаются на диске.

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

    Общие библиотеки. Библиотеки — наборы процедур, используемых программами для обработки данных. Существует некоторое количество стандартных библиотек, используемых одновременно более чем одним процессом. В старых системах такие библиотеки включались в каждый исполняемый файл, одновременное выполнение которых приводило к непродуктивному использованию памяти. В новых системах (в частности, в Linux), обеспечивается работа с динамически и статически разделяемыми библиотеками, что позволяет сократить размер отдельных приложений.

    Динамическое кеширование диска. Кеширование диска — это использование части оперативной памяти для хранения часто используемых данных с диска, что существенно ускоряет доступ к часто используемым программам и задачам. Пользователи MS-DOS работают со SmartDrive, который резервирует фиксированные области системной памяти для кеширования диска. Linux использует более динамичную систему кеширования: память, зарезервированная под кеш, увеличивается, когда память не используется, и уменьшается, если системе или процессу пользователя требуется больше памяти.

    100%-ное соответствие стандарту POSIX 1003.1. Частичная поддержка возможностей System V и BSD

    POSIX 1003.1 (Portable Operating System Interface — интерфейс мобильной операционной системы) задаeт стандартный интерфейс Unix-систем, который описывается набором процедур языка Си. Сейчас он поддерживается всеми новыми ОС. Microsoft Windows NT также поддерживает POSIX 1003.1. Linux 100%-но соответствует POSIX. Дополнительно поддерживаются некоторые возможности System V и BSD для увеличения совместимости.

    System V IPC. Linux использует технологию IPC (InterProcess Communication) для обмена сообщениями между процессами, использования семафоров и общей памяти.

    Возможность запуска исполняемых файлов других ОС. Linux не является первой в истории операционной системой. Для ранее разработанных ОС, включая DOS, Windows 95, FreeBSD или OS/2, разработана масса различного, в том числе очень полезного и очень неплохого программного обеспечения. Для запуска таких программ под Linux разработаны эмуляторы DOS, Windows 3.1 и Windows 95. Более того, фирмой Vmware разработана система "виртуальных машин", представляющая собой эмулятор компьютера, в котором можно запустить любую операционную систему. Имеются аналогичные разработки и у других фирм. ОС Linux способна также выполнять бинарные файлы других Intel-ориентированных Unix-платформ, соответствующих стандарту iBCS2 (intel Binary Compatibility).

    Поддержка различных форматов файловых систем. Linux поддерживает большое число форматов файловых систем, включая файловые системы DOS и OS/2, а также современные журналируемые файловые системы. При этом и собственная файловая система Linux, которая называется Second Extended File System (ext2fs), позволяет эффективно использовать дисковое пространство.

    Сетевые возможности. Linux можно интегрировать в любую локальную сеть. Поддерживаются все службы Unix, включая Networked File System (NFS), удалeнный доступ (telnet, rlogin), работа в TCP/IP сетях, dial-up-доступ по протоколам SLIP и PPP, и т. д.. Также поддерживается включение Linux-машины как сервера или клиента для другой сети, в частности, работает общее использование (sharing) файлов и удаленная печать в Macintosh, NetWare и Windows.

    Работа на разных аппаратных платформах. Хотя ОС Linux первоначально была разработана для ПК на базе Intel 386/486, сейчас она может работать на всех версиях Intel-овских микропроцессоров, начиная с 386 и кончая многопроцессорными системами на Pentium III (с Pentium IV возникли определенные трудности, но, судя по сообщениям в Интернете, они были вызваны ошибками в реализации процессора). (Примеч.3) Так же успешно Linux работает на различных клонах Intel от других производителей; в Интернете встречаются сообщения о том, что на процессорах Athlon и Duron от AMD Linux работает даже лучше, чем на Intel. Кроме того, разработаны версии для других типов процессоров — ARM, DEC Alpha, SUN Sparc, M68000 (Atari и Amiga), MIPS, PowerPC и других (отметим, что в настоящей книге рассматривается только вариант для IBM-совместимых компьютеров).

    Задание 1.

    Создать командный файл пакетной обработки для копирования файла с расширением .com из каталога TEST на диск A:

    Ответ: rem файл для копирования файлов с расширением .com и .exe

    @echo off

    if exist \TEST\%1.com goto m1

    echo файл не найден, копирование осуществляться не будет goto end

    :m1

    echo копируется файл %1.сom

    copy \TEST\%1.com A:

    echo файл скопирован

    :end

    End

    Задание 2.

    Создать командный файл, используя команды работы с дисками OC MS-DOS.

    1. Осуществить форматирование диска А: с заданием метки и резервирования места для системных файлов.

    2. Перенести файлы ОС командой SYS.

    3. Изменить метку диска.

    4. Перенести все файлы корневого каталога с винчестера на дискету.

    5. Осуществить быстрое форматирование диска.

    6. Осуществить копирование информации с одного HГМД на другой с последующей проверкой правильности записи информации после копирования.

    7. Осуществить сравнение только восьми секторов на дорожке двух HГМД.

    Ответ:

    1. format A:/V:метка/В

    2. SYS C: A:

    3. lable

    4. move C: A:

    5. format A:/Q

    6. diskcopy A: B:/V

    7. diskcopy A: B:/8

    Задание 3.

    Создать файл конфигурации, который обеспечивает загрузку ОС MS-DOS в двух произвольно выбранных вариантах:

    - с числом файлов 25, буферов 35, с количеством стеков 20, с установкой расширенного управления клавиатурой с нормализацией строк прокрутки, организации кэш-памяти в расширенной памяти;

    - с числом файлов 25, буферов 35, с указанием месторасположения командного процессора, с загрузкой ОС в область дополнительной памяти, а свободные блоки старшей памяти будут доступны прикладным программам;

    Ответ:

    [menu]

    menuitem = base_config, Base Configuration

    menuitem = normal_config, Normal Configuration

    [base_config]

    device = c:\dos\emm386.exe

    device = c:\dos\ansi.sys/R

    device = c:\dos\smartdrv.exe

    [normal_config]

    dos = high,umb

    shell = c:\dos\command.com/E:1024/P

    [common]

    files = 25

    buffers = 35

    Задание 4.

    Создать командный файл с использованием внутренних и внешних команд DOS:

    1. скопировать на диск А: содержимое диска В:

    2. проверить правильность организации файловой структуры диска А: с выводом на дисплей имени каждого проверяемого файла и получить отчет о работе команды в файле STATUS;

    3. проверить правильность организации файловой структуры диска А: с фиксацией обнаруженных ошибок и выводом информации о работе команды в файл STATUS1;

    4. объединить файлы STATUS и STATUS1 в файл ALL_STAT;

    5. создать рабочий каталог WORK и в нем текстовые файлы с именами OPERA1.TXT и OPERA2.TXT;

    6. создать подкаталог WORK1 и скопировать в него файлы OPERA1.TXT и OPERA2.TXT;

    7. удалить файл OPERA1.TXT из обоих каталогов;

    8. запустить программу UNDELETE для восстановления всех файлов с запросом;

    9. просмотреть содержимое каталогов;

    10. отформатировать диск А:;

    12. восстановить информацию на диске А: .

    Ответ:

    1. - diskcopy B: A:

    2. - CHKDSK  А:/V > STATUS

    3. CHKDSK  А:/F> STATUS1

    4. copy \STATUS+STATUS1 ALL_STAT

    5. - md WORK

    - copy con OPERA1.TXT

    - copy con OPERA2.TXT

    1. - md WORK1

    - copy \WORK\ OPERA1.TXT \WORK1

    - copy \WORK\ OPERA2.TXT \WORK1

    1. del \WORK\ OPERA1.TXT

    2. del \WORK1\ OPERA1.TXT

    3. UNDELETE.EXE \WORK/ALL

    4. dir \WORK

    5. dir \WORK1

    6. UNFORMAT.COM A:

    Задание 5.

    Создать командный файл для запуска программ SD, NDD, NU из каталога NU по выбору пользователя

    Ответ:

    rem файл для запуска программ SD, NU, NDD

    echo выбрать программу SD – A, NU – B, NDD – C

    choice/c: ABC «Введите А, В или С»

    if errorlevel 3 goto m3

    if errorlevel 2 goto m2

    \NU\SD

    goto exit

    :m2

    \NU\NU

    goto exit

    :m3

    \NU\NDD

    goto exit

    :exit

    Задание 6. Работа с командами ОС LINUX

    1. Создать на диске С: папку LINUX.

    2. Вывести на экран справку по команде ls .

    3. Просмотреть содержимое текущего каталога.

    4. Перейти в корневой каталог

    5. Просмотреть содержимое корневого каталога.

    6. Создать в корневом каталоге каталог user1

    7. Перейти в каталог user1

    8. Создать текстовый файл text (cat >text)

    9. Записать в файл text свои ФИО (выход - ^D)

    10. Просмотреть файл text

    11. Просмотреть текущую дату и время

    Ответ:

    1.

    2. man ls

    3. ls

    4. cd /

    5. ls /

    6. mkdir user1

    7. cd user1

    8. touch text

    9. echo «свои ФИО» > text

    10. cat text

    11. date

    Задание 7. Работа с командами ОС LINUX

    1. Создать текстовый файл text2 куда записать дату

    2. Создать в текущем каталоге каталог user2

    3. Создать в каталоге user2 подкаталоги a, d, f

    4. Объединить файлы text и text2 в файл text3

    5. Скопировать файл text3 в каталог user2

    6. Переименовать файл text3 в файл text4

    7. Добавить в файл text4 одно предложение

    8. Удалить все созданные файлы

    9. Удалить все каталоги

    Ответ:

    1. – touch text2

    - date > text2

    2. mkdir user2

    3. – cd user2

    - mkdir a

    -mkdir d

    - mkdir f

    4. cat >text3 text text2

    5. cp text3 user2/

    6. mv text3 text4

    7. cat >>text4

    8. rm text и т.д.

    9. rmdir user2

    Задание 8. Работа с командами ОС LINUX

    1. Создать в домашнем каталоге личный каталог

    2. Cоздать в личном каталоге текстовый файл pr.txt

    3. Добавить в файл pr.txt полное имя текущего каталога

    4. Переименовать файл pr.txt в файл pr1.txt

    5. Создать текстовый файл pr2.txt

    6. Вывести на экран содержимое файла pr2.txt

    7. Скопировать файлы pr.txt pr1.txt в файл pr2.txt

    8. Удалить созданные файлы

    9. Удалить созданный каталог

    Ответ:

      1. mkdir /home/svetlana или mkdir~/svetlana

      2. touch pr.txt

      3. pwd >pr.txt

      4. mv pr.txt pr1.txt

      5. touch pr2.txt

      6. more pr2.txt

      7. cat pr.txt pr1.txt > pr2.txt

      8. – rm pr.txt

    – rm pr1.txt

    – rm pr2.txt

      1. rm -r ~ /svetlana

    Задание 9. Работа с командами ОС LINUX

    1. Отобразить на экран содержимое файла file1 при чтении.

    2. Отобразить на экран содержимое файла file1 при чтении постранично

    3. Переименовывает file1 в file2.

    4. Пересылает file в каталог dir.

    5. Копирует file1 и создает file2.

    6. Удаляет файл file 2

    7. Удаляет каталог dir (если он пустой).

    8. Создаёт каталог dirname

    Ответ:

    1. cat file1

    2. less file1

    3. mv file1 file2

    4. mv file dir

    5. cp file1 file2

    6. rm file2

    7. rmdir dir

    8. Mkdir dirname

    Задание 10. Работа с командами ОС LINUX

    1. Вывести подробную информацию по команде ls

    2. Создать каталог test

    3. Создать файл file33

    4. Переименовать файл file33 в fail44

    5. Скопировать файл в каталог test

    6. Вывести содержимое файла на экран

    7. Удалить файл file44

    8. Удалить каталог test

    Ответ:

    1. $man ls

    2. $mkdir test

    3. $touch file33

    4. $mv file33 file44

    5. $cp file44 test

    6. cat file44

    7. $rm file44

    8. $rmdir test

    2. Дано 10 целых чисел определить сколько из них принимает наибольшее значение

    Option Explicit

    Sub progr()

    Dim i, As Integer

    Dim Max, imax As Integer

    Range(Cells(1, 1), Cells(100, 100)).Select

    Selection.Clear

    Cells(1, 1).Select

    For i = 1 To 10

    Cells(i, 1) = Int(Rnd * 100)

    Next i

    Max = Cells(1, 1)

    For i = 2 To 10

    If Max <Cells(i, 1) Then

    Max = Cells(i, 1)

    End If

    Next i

    MsgBox ("" & Max)

    EndSub

    3. Посчитать сумму элементов, стоящих на четных позициях строк и столбцов матрицы а(7x7).

    Sub matrixIndex()

    Dim i, j, s, A(7, 7) As Integer

    For i = 1 To 7

    For j = 1 To 7

    A(i, j) = Cells(i, j)

    Next

    Next

    s = 0‘обнуляем хранилище суммы

    Fori = 2 To 7 Step 2 ‘перебираем только четные строки, начиная с 2

    Forj = 2 To 7 Step 2 ‘перебираем только четные столбцы, начиная с 2

    s = s + A(i, j) ‘элементы A(i, j) лежат на пересечении четных строк и столбцов

    Next

    Next

    MsgBox (s)

    End Sub

    4. Дано целое N> 1 и вещественные числа Х1, Х2, Хn вычислить D = SQRсумма(Х1 – М)^2 / n-1

    M = суммаX / n

    Option Explicit

    Sub progr()

    Dim Si As Integer

    Dim N, d, S, i, m As Integer

    N = Val(InputBox("N - ?"))

    Range(Cells(1, 1), Cells(100, 100)).Select

    Selection.Clear

    Cells(1, 1).Select

    For i = 1 To N

    Cells(1, i) = Int(Rnd * 50)

    Next i

    S = 0

    For i = 1 To N

    S = S + Cells(1, i)

    Next i

    m = S / N

    MsgBox ("M=" & m)

    Si = 0

    For i = 1 To N

    Si = Si + (Cells(1, i + m) ^ 2)

    Next i

    d = Sqr(Si / (N - 1))

    MsgBox ("D=" & d)

    End Sub

    6. Определить число полученное выписав в обратном порядке цифр задающегося натурального числа

    Option Explicit

    Sub progr()

    Dim S1 As Integer

    Dim a, N, d, KOL, i As Integer

    a = Val(InputBox("N - ?"))

    N = Val(a)

    Range(Cells(1, 1), Cells(100, 100)).Select

    Selection.Clear

    Cells(1, 1).Select

    KOL = Len(a)

    For i = 1 To KOL

    S1 = ((N / 10) - Int(N / 10)) * 10

    Cells(1, i) = S1

    N = Int(N / 10)

    Next i

    d = Cells(1, i)

    For i = 2 To KOL

    d = d * 10 + Cells(1, i)

    Next i

    Cells(4, 4) = d

    End Sub

    7. Обнулить элементы главной диагонали матрицы а(5x5).

    Sub topDiagonal()

    Dim i, j, A(5, 5) As Integer

    Fori = 1 To 5 ‘вводим матрицу из листа Excel:

    For j = 1 To 5

    A(i, j) = Cells(i, j)

    Next

    Next

    For i = 1 To 5 ‘обнуляемдиагональ

    A(i, i) = 0

    Next

    Fori = 1 To 5 ‘выводим матрицу на лист Excel:

    For j = 1 To 5

    Cells(i, j) = A(i, j)

    Next

    Next

    End Sub

    9. Даны целое N>0 и последовательность из N вещественных чисел, среди которых хотя бы одно отрицательное число, найти величину наибольшего отрицательного среди чисел этой последовательности.

    Option Explicit

    Sub progr()

    Dim N, i As Integer

    Dim Max As Integer

    Range(Cells(1, 1), Cells(100, 100)).Select

    Selection.Clear

    Cells(1, 1).Select

    N = Val(InputBox("N - ?"))

    For i = 1 To N

    Cells(1, i) = Int(100 - Rnd * 200)

    Next i

    For i = 1 To N

    If Cells(1, i) < 0 Then

    Max = Cells(1, i)

    End If

    Next i

    For i = 1 To N

    If Max <>Cells(1, i) Then

    Max = Cells(1, i)

    End If

    Next i

    MsgBox ("max=" &Abs(Max))

    End Sub

    1. Дана матрица размером 5x5. Посчитать среднее значение элементов матрицы, расположенных строго ниже главной диагонали.

    Sub Матрица()

    Dim M(5, 5) As Integer, S As Integer, k As Integer, Avg

    As Single

    For i = 1 To 5

    For j = 1 To 5

    M(i,j) = InputBox("ВведитеэлементматрицыМ(" & i & "," & j & ")")

    Next

    Next

    S = 0

    k = 0

    Fori = 2 To 5 ‘номера строк берутся от 2 до конца матрицы

    Forj = 1 Toi – 1 ‘номера столбцов берутся от 1 до диагонали

    S = S + M(i, j)

    k = k + 1

    Next

    Next

    Avg = S / k

    MsgBox "Среднее значение = " &Avg

    End Sub

    1. Дано 10 вещественных чисел найти порядковый номер того из них которое наиболее близко к какому-либо целому числу

    Option Explicit

    Sub progr()

    Dim N, i, K, v, b, m As Integer

    For i = 1 To 10

    Cells(1, i) = Rnd * 200

    Next i

    m = 0

    N = 0.5

    For i = 1 To 10

    If b >Abs(Cells(1, i)) - (Round(Cells(1, i))) Then

    N = Cells(1, i)

    m = i

    End If

    Next i

    MsgBox ("" & m)

    End Sub

    13. Дана последовательность из 10 целых чисел определить со скольки отрицательных она начинается

    Option Explicit

    Sub progr()

    Dim N, i As Integer

    Dim Max As Integer

    Range(Cells(1, 1), Cells(100, 100)).Select

    Selection.Clear

    Cells(1, 1).Select

    N = Val(InputBox("N - ?"))

    For i = 1 To N

    Cells(1, i) = Int(90 - Rnd * 300)

    Next i

    i = 1

    If Cells(i, 1) >= 0 Then

    MsgBox ("начинаетсяснеотрицательных")

    Else

    Do While Cells(1, i) < 0

    i = i + 1

    Loop

    MsgBox ("количество отрицательных=" &i - 1)

    EndIf

    EndSub

    1. Обнулить элементы матрицы а(5x5), лежащие правее ее главной диагонали и левее побочной, включая диагональные элементы.

    Sub matrixKvota()

    Dim i, j, A(5, 5) As Integer

    For i = 1 To 5

    For j = 1 To 5

    A(i, j) = Cells(i, j) ‘вводматрицы

    Next

    Next

    For i = 1 To 3 ‘номера строк берутся от 1 до середины матрицы

    For j = i To 5 - i + 1 ‘номера столбцов берутся отглавной до побочной диагонали

    A(i, j) = 0

    Next

    Next

    For i = 1 To 5

    For j = 1 To 5

    Cells(i, j) = A(i, j) ‘выводматрицы

    Next

    Next

    EndSub

    1. Дано 15 вещественных чисел определить сколько из них больше своих соседей

    Option Explicit

    Sub progr()

    Dim a(15), n, i As Integer

    For i = 1 To 15

    a(i) = Int(Rnd * 100)

    Cells(1, i) = a(i)

    Next i

    n = 0

    For i = 2 To 14

    If (a(i) > a(i + 1)) And (a(i) > a(i - 1)) Then

    n = n + 1

    End If

    Next i

    Cells(3, 3) = n

    EndSub

    16.Для каждого числа b из 20-ти чисел, вводимых с клавиатуры определить наименьшее неотрицательное целое k такое, что b <2К.

    Sub MinK ( )

    Dim b As Integer, k As Integer

    For i = 1 To 20 ‘внешний цикл вводит очередное b и печатает результат

    b = InputBox("Введите целое число")

    k = 0 ‘для каждого b начинаем поиск k с нуля!

    While b >= 2 ^ k ‘внутренний цикл; условие цикла на каждом его шаге пересчитывается

    k = k + 1 ‘увеличиваем показатель степени

    Wend

    MsgBox "Для b =" &CStr(b) & " k=" &CStr(k)

    Next

    EndSub

    17. Дана не пустая последовательность натуральных чисел за которыми следует 0 определитьПорядковый номер наименьшего из них.

    OptionExplicit

    Subprogr()

    Dima, N, min, iAsInteger

    Range(Cells(1, 1), Cells(100, 100)).Select

    Selection.Clear

    Cells(1, 1).Select

    N = Val(InputBox("N - ?"))

    For i = 1 To N

    Cells(1, i) = Int(Rnd * 10)

    Next i

    i = 1

    Do While Cells(1, i) <> 0

    Cells(2, i) = Cells(1, i)

    i = i + 1

    Loop

    a = i - 1

    N = 1

    min = Cells(2, i)

    For i = 2 To a

    If min >Cells(2, i) = 0 Then

    min = Cells(2, i)

    N = i

    End If

    Next i

    Cells(4, 1) = N

    If Cells(2, 1) = 0 Then

    Cells(4, 1) = 0

    Else: Cells(4, 1) = N

    End If

    EndSub

    1. Поменять местами первый положительный и первый отрицательный элементы

    массива А из 10 целых чисел.

    Sub obmen()

    Dim i, j, k, rab, A(10) As Integer

    Fori = 1 To 10 ‘вводим массив из листа Excel:

    A(i) = Cells(i, 1)

    Next

    Fori = 1 To 10 ‘находим первый положительный элемент:

    If A(i) > 0 Then

    k = i

    Exit For

    End If

    Next

    Fori = 1 To 10 ‘находим первый отрицательный элемент:

    If A(i) < 0 Then

    j = i

    Exit For

    End If

    Next

    rab = A(k) ‘меняемзначения

    A(k) = A(j)

    A(j) = rab

    Fori = 1 To 10 ‘выводим массив на лист Excel:

    Cells(i, 2) = A(i)

    Next

    EndSub

    19. Занести отрицательные элементы массива a(NxM) в массив b и напечатать его.

    Sub Перенос()

    Dim A(4, 6) As Integer, B(24) As Integer, k As Integer

    For i = 1 To 4

    For j = 1 To 6

    A(i,j)=InputBox("Введите значение элемента матрицы ")

    Cells(i,j)= A(i,j) ‘вывод вводимой матрицы на лист Excel для наглядности

    Next

    Next

    k = 0 ‘обнуление счетчика элементов массива В перед началом его заполнения

    For i = 1 To 4

    For j = 1 To 6

    If A(i, j) < 0 Then

    k = k + 1

    B(k) = A(i, j)

    End If

    Next

    Next

    For i = 1 To k

    Cells(7, i) = B(i) ‘вывод массива В на лист Excel в строку 7

    Next

    End Sub

    1. Подсчитать количество символов, не являющихся цифрами, в произвольной строке.

    Sub количество_цифр()

    Dim s As String

    Dim i As Byte, nd As Byte

    s = InputBox(''введите произвольную строку'')

    nd = 0

    For i = 1 To Len(s)

    If Asc(Mid(s, i, 1)) > 57 Оr Asc(Mid(s, i, 1)) < 49 Then

    nd = nd + 1

    End If

    Next

    MsgBox (nd)

    EndSub

    21. Отсортировать массив чисел по возрастанию.

    Sub сортировка_отбором()

    Dim c(1 To 100) As Single

    Dim k As Integer, i As Integer, j As Integer

    DimvrAsSingle

    k = InputBox(''Введите количество элементов <= 100'')

    If k> 100 Then Exit Sub

    Cells(1, 1) = k

    For i = 1 To k

    c(i) = InputBox(''введите'' & i & '' элемент'')

    Cells(i, 2) = c(i) 'Вывод исходного массива на лист

    Next

    Fori=1 Tok–1 'Двигаемся по массиву, сокращая неотсортированную часть

    Forj=i+1 Tok'Сpавниваем по очеpедиi-й элемент неотсоpтированнойчасти массива со всеми, от i+1-го до конца

    Ifc(j)<c(i) Then 'если в неотсоpтиpованной части массива нашли элемент, больший i-го, то меняем их местами:

    vr = c(i)

    c(i) = c(j)

    c(j) = vr

    End If

    Next

    Next

    For i = 1 To k

    Cells(i, 3) = c(i) 'Вывод результата на лист Excel

    Next

    End Sub

    22. Гласные буквы русского алфавита не изменяются. Первый десяток согласных заменяется на второй десяток согласных (второй - на первый) по следующей таблице:

    Б

    И

    Г

    Д

    Ж

    З

    К

    Л

    М

    Н

    Щ

    Ш

    Ч

    Ц

    Х

    Ф

    Т

    С

    Р

    П


    Private Sub Гласные()

    Dim tmp As String, Alf1 As String, Alf2 As String

    Dim a As String, b As String

    a = InputBox(''Введите исходную строку символов'')

    Alf1 = ''бвгджзклмнщшчцхфтсрп''

    Alf2 = ''щшчцхфтсрпбвгджзклмн''

    n = Len(a)

    b = Space(n)

    For i = 1 To n

    tmp = Mid(a, i, 1)

    k = InStr(1, Alf1, tmp)

    If k = 0 Then

    Mid(b, i, 1) = tmp

    Else

    Mid(b, i, 1) = Mid(Alf2, k, 1)

    End If

    Next i

    MsgBox b

    End Sub

    23. Составить программу, определяющую сколько раз встречается заданное число (вводится с клавиатуры) в диапазоне от 10 до 352.

    Dim x As String, s As Integer

    Private Sub Command1_Click()

    x = Text1.Text

    k = Len(x)

    Select Case k

    Case 1

    s = 0

    For i = 10 To 352

    n = Len(i)

    For j = 1 To n

    For y = 1 To k

    If Mid(x, y, 1) = Mid(i, j, k) Then s = s + 1

    Next y

    Next j

    Next i

    Case 2

    s = 0

    For i = 10 To 352

    For j = 1 To k

    If x = Mid(i, j, 2) Then s = s + 1

    Next j

    Next i

    Case 3

    s = 0

    For i = 10 To 352

    For j = 1 To k

    If x = Mid(i, j, 3) Then s = s + 1

    Next j

    Next i

    End Select

    Text2.Text = s

    End Sub

    Private Sub Command2_Click()

    Form5.Hide: Form6.Show

    End Sub

    Private Sub Command3_Click()

    Form5.Hide: Form4.Show

    End Sub

    1. Дана не пустая последовательность не нулевых целых чисел за которыми следует 0 определить сколько раз в этой последовательности меняется знак

    Dim A(100), N, i As Integer

    For i = 1 To 10

    A(i) = Int(Rnd * 20 - 10)

    Cells(2, i) = A(i)

    Next i

    Cells(3, 3) = 0

    N = 0

    If A(1) <> 0 And A(i) = 0 Then '

    For i = 1 To 10

    If A(i) <> 0 Then

    If A(i) > 0 And A(i + 1) < 0 Or A(i) < 0 And A(i + 1) > 0 Then

    N = N + 1

    End If

    Else

    Cells(3, 3) = N

    Exit For

    End If

    Next i

    Else

    Cells(3, 3) = 0

    End If

    End Sub

    1. Ввести три числа: X, y, z. Если сумма трех попарно различных чисел X, y, z меньше 1, то меньшее из X, y заменить полу суммой y и z, иначе большее из X и z заменить на y4 .

    Sub lop177() Dim x, y, z, s x = Val(InputBox("введите x:")) y = Val(InputBox("введите y:")) z = Val(InputBox("введите z:")) If (x + y + z) < 1 Then If x < y Then x = (y + z) / 2 Else y = (y + z) / 2 EndIf MsgBox "x=" & x &Chr(10) &Chr(13) & _ "y=" & y &Chr(10) &Chr(13) & _ "z=" & z Else If x > z Then x = y ^ 4 Else z = y ^ 4 EndIf MsgBox "x=" & x &Chr(10) &Chr(13) & _ "y=" & y &Chr(10) &Chr(13) & _ "z=" & z EndIf EndSub

    26. Даны два положительных целых числа найти их наибольший общий делитель (например 45 и 27 нод=9).

    Subnod() Dim a, b, r, nod a = Val(InputBox("введите a:")) b = Val(InputBox("введите b:")) DoWhile (a Mod b) <> 0 r = a Mod b a = b b = r Loop nod = b 'nod – наибольший общий делитель MsgBox "a=" & a & " " & "b=" & b &Chr(10) &Chr(13) & _ "nod=" &nod

    27. Напишите программу для заполнения ячеек рабочего листа и выведите общую сумму.

    Sub pr61() Dim i, n, x, sum, str_x As String n = Val(InputBox("введите n:")) i = 1: sum = 0 For i = 1 To n x = Int(Rnd * 100) + 1 str_x = str_x& x & " " sum = sum + x Sheets("лист 1").Cells(i, 3).Value = x Sheets("лист 1").Cells(5, 4) = sum Next i End Sub

    29. Найти все четырехзначные числа у которых сумма крайних цифр равна сумме средних чисел, а само число делится на 6 и 27

    Option Explicit

    Sub progr()

    Dim m(1 To 4) As Integer

    Dim i, j, N, q, e, S As Integer

    Dim S1, S2 As Integer

    N = Val(InputBox("N - ?"))

    Range(Cells(1, 1), Cells(100, 100)).Select

    Selection.Clear

    Cells(1, 1).Select

    Randomize

    For i = 1 To N

    For j = 1 To N

    Cells(i, j) = Int(1000 + Rnd * 8999)

    Next j

    Next i

    For i = 1 To N

    For j = 1 To N

    q = Cells(i, j)

    For e = 1 To 4

    S = ((q / 10) - Int(q / 10) * 10)

    q = Int(q / 10)

    m(e) = S

    Next e

    S1 = m(1) + m(4)

    S2 = m(2) + m(3)

    If (S1 = S2) And (((Cells(i, j) / 6) - (Cells(i, j) \ 6)) = 0) And (((Cells(i, j) / 27) - (Cells(i, j) \ 27))) = 0 Then

    MsgBox ("искомое число=" &Cells(i, j))

    End If

    Next j

    Next i

    EndSub

    30. Даны натуральное М и вещественные числа Х1 , Y1 , X2 , Y2 , . . . , Xn , Yn рассматривая пары Х и Y как координаты точек на плоскости определить радиус наименьшего круга с центром в начале координат внутри которого находятся все точки.

    Option Explicit

    Sub progr()

    Dim N, i, r As Integer

    N = Val(InputBox("введите колличество"))

    Cells(i, 1) = "x"

    Cells(i, 2) = "y"

    For i = 2 To N + 1

    Cells(i, 1) = Int(Rnd * 10)

    Cells(i, 2) = Int(Rnd * 10)

    Next i

    r = 0

    For i = 2 To N + 1

    If r <Sqr((Cells(i, 1)) ^ 2 + (Cells(i, 2)) ^ 2) Then

    r = Sqr((Cells(i, 1)) ^ 2 + (Cells(i, 2)) ^ 2)

    End If

    Next i

    MsgBox ("min радиус=" & r)

    EndSub