Операционные системы. Системное программное обеспечение

Учебное пособие по выполнению лабораторных работ по курсам
«Операционные системы» и «Системное программное обеспечение»

Красноярск 2008г.

Учебное пособие содержит материал, необходимый для решения задач, которым должны овладеть студенты в процессе изучения таких
дисциплин как «Операционные системы» и «Системное программное обеспечение». Теоретический материал сопровождается примерами и листингами программ, предназначенных к выполнению в среде семейства
Microsoft Windows.

Предназначено для студентов укрупненной группы направлений подготовки специалистов 230000 – «Информатика и вычислительная техника» (спец. 230102.65, 230104.65, 230105.65, 230201.65) и преподавателей дисциплин «Операционные системы» и «Системное программное обеспечение».

Введение

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

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

Объект изучения дисциплин «Операционные системы» и «Системное программное обеспечение» – современные операционные системы ЭВМ и другие виды системного программного обеспечения.

НЕ нашли? Не то? Что вы ищете?

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

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

а) универсальных:

– общенаучные (ОНК):

ОНК 1. способность применять знания на практике;

ОНК 2. исследовательские навыки;

ОНК 3. способность учиться;

ОНК 4. способность адаптироваться к новым ситуациям;

– инструментальные (ИК):

ИК 2. фундаментальная подготовка по основам профессиональных знаний;

ИК 3. навыки работы с компьютером;

ИК 4. базовые знания в различных областях;

ИК 5. способность к анализу и синтезу;

б) профессиональными:

– общепрофессиональные (ОПК):

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

ОПК 2. Умение понять поставленную задачу.

ОПК 3. Умение формулировать результат.

ОПК 5. Умение на основе анализа увидеть и корректно сформулировать результат.

ОПК 6. Умение самостоятельно увидеть следствия сформулированного результата.

ОПК 7. Умение грамотно пользоваться языком предметной области.

ОПК 8. Умение ориентироваться в постановках задач.

ОПК 10. Понимание корректности постановок задач.

ОПК 11. Самостоятельное построение алгоритма и его анализ.

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

– профильно-специализированные (ПСК):

ПСК 1. Владение методом алгоритмического моделирования при анализе постановок прикладных задач.

ПСК 2. Владение методами математического и алгоритмического моделирования при решении прикладных и инженерно-технических задач.

ПСК 13. Владение методами алгоритмического моделирования.

ПСК 15. Умение самостоятельно математически корректно ставить задачи.

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

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

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

Лабораторная работа № 1. Управление процессами в ОС Windows

Цель: Изучение процессов и потоков в операционной системе Windows.

Задачи:

1. Изучение теоретического материала по управлению процессами.

2. Составление алгоритма программы.

3. Программная реализация.

Ход работы:

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

2. Используя изученные механизмы, разработать и отладить:

а. программу, реализующую полученное задание (запуск процессов);

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

3. Написать отчет.

Ход защиты:

1. Продемонстрировать преподавателю программу, запускающую дополнительные процессы.

2. Пояснить работу изученных механизмов по коду:

а. программы, реализующей полученное задание (запуск процессов);

б. программы, являющейся дополнительным процессом (по выбору преподавателя).

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

В ОС типа Windows NT/2000/XP создание процесса осуществляется с помощью вызова функции Win32 API, описываемой на языке Си следующим образом.

BOOL CreateProcess (

PCTSTR pszApplicationName, //имя исполняемого файла

PTSTR pszCommandLine, //командная строка

PSECURITY_ATTRIBUTES psaProcess, //атрибуты защиты процесса

PSECURITY_ATTRIBUTES psaThread, //атрибуты защиты потока

BOOL bInheritHandles, //наследование описателей

DWORD fwdCreate, //флаги процесса

PVOID pvEnvironment, //переменные окружения

PCTSTR pszCurDir, //текущий каталог

PSTARTUPINFO psiStrartInfo,

//начальная информация при создании процесса

PPROCESS_INFORMATION ppiProcInfo);//описатель процесса

Функция CreateProcess возвращает значение TRUE, если системе удастся создать процесс и начальный поток, при этом созданному объекту ядра будет присвоен уникальный идентификатор.

Процесс в Windows NT/2000/XP можно завершить с помощью вызовов функций Win32 API под названием ExitProcess и TerminateProcess, описанные следующим образом:

VOID ExitProcess (

UINT fuExitCode);// код завершения процесса

Эта функция не возвращает значения.

VOID TerminateProcess (

HANDLE hProcess, // описатель завершаемого процесса

UINT fuExitCode); // код завершения процесса

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

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

#include <windows. h>

void WinMain ()

{

STARTUPINFO start = { sizeof (start) };

PROCESS_INFORMATION procinfo;

TCHAR CommandLine[] = TEXT (“CALC”);

CreateProcess (NULL, CommandLine, NULL, NULL, FALSE, 0, NULL,
NULL, &start, &procinfo);

}

Варианты заданий к лабораторной работе №1

Вариант №1

Разработать две программы. Первая вычисляет сумму и произведение чисел от L до U, где L – это нижняя граница диапазона, U – верхняя граница диапазона, границы вводятся пользователем, и выводит полученные значения на экран. Вторая программа запускает первую в качестве вновь созданного процесса.

Вариант №2

Разработать две программы. Первая вычисляет число Фибоначчи по номеру, введенному пользователю, и формуле Fi = Fi–1 + Fi–2, F0 = F1= 1 и
выводит его на экран. Вторая программа запускает первую в качестве вновь созданного процесса.

Вариант №3

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

Вариант №4

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

Вариант №5

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

Вариант №6

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26