- •230105 - «Программное обеспечение вычислительной техники и автоматизированных систем»
- •220201- «Управление и информатика в технических системах»
- •Введение
- •Выполнение работы
- •Цель работы
- •Содержание работы
- •Методические указания к работе
- •Основные назначения командного интерпретатора в ос unix
- •Синтаксис языка Bourne Shell
- •Общий синтаксис скрипта
- •Переменные
- •Встроенные переменные
- •Перенаправление ввода-вывода
- •Логические операции в контексте test
- •Условный оператор "if"
- •Оператор выбора case
- •Оператор цикла с перечислением for
- •Оператор цикла с истинным условием while
- •Оператор цикла с ложным условием until
- •Основные команды ос unix для работы с файлами
- •1. Команда pwd.
- •Задание 1.
- •2. Команда man.
- •Задание 2.
- •3. Команда cd.
- •Задание 3.
- •4. Команда ls.
- •Права доступа к файлам
- •Задание 4.
- •5. Команда cat.
- •Задание 5.
- •6. Простейшие команды работы с файлами: cp, rm, mkdir, mv
- •Задание 6.
- •Задание 7.
- •Системные вызовы getuid и getpid
- •Задание 8.
- •Контрольные вопросы
- •Лабораторная работа № 3.
- •Процессы в операционной системе unix.
- •Цель работы
- •Научиться создавать процессы и освоить изменение пользовательского контекста процессов с помощью системных вызовов, применяемых в программах на языке с, в ос unix.
- •Содержание работы
- •Методические указания к работе Иерархия процессов
- •Прототипы системных вызовов
- •Создание процесса в unix
- •Прототип системного вызова
- •Завершение процесса. Функция exit() Прототип функции
- •Описание функции
- •Параметры функции main() в языке с Переменные среды и аргументы командной строки
- •Задание 3.
- •Прототипы функции
- •Описание функций
- •Системный вызов wait():
- •Задание 4.
- •Варианты:
- •Контрольные вопросы
- •Методические указания Понятие о потоке ввода-вывода
- •Понятие о работе с файлами через системные вызовы и стандартную библиотеку ввода-вывода для языка с
- •Файловый дескриптор
- •Открытие файла
- •Системный вызов open Прототип системного вызова
- •Описание системного вызова
- •Возвращаемое значение
- •Системные вызовы read(), write().
- •Прототипы системных вызовов:
- •Описание системных вызовов
- •Возвращаемые значения
- •Особенности поведения при работе с файлами
- •Описание системного вызова
- •Возвращаемые значения
- •Пример программы для записи информации в файл
- •Понятие неименованного канала. Системный вызов pipe()
- •Важное отличие pip'a от файла заключается в том, что прочитанная информация немедленно удаляется из него и не может быть прочитана повторно.
- •Описание системного вызова
- •Возвращаемые значения
- •Организация связи через pipe между процессом-родителем и процессом-потомком.Наследование файловых дескрипторов при вызовах fork() и ехес().
- •Пример программы для организации однонаправленной связи между родственными процессами через pipe
- •Манипуляция таблицей дескрипторов
- •Описание системного вызова
- •Возвращаемые значения
- •Описание функции
- •Возвращаемые значения
- •Особенности поведения вызова ореn() при открытии fifo
- •Пример программы с fifo в родственных процессах
Системное программирование
Лабораторный практикум
для специальностей
230105 - «Программное обеспечение вычислительной техники и автоматизированных систем»
220201- «Управление и информатика в технических системах»
Коломна, 2010
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
Коломенский институт (филиал)
Государственного образовательного учреждения высшего профессионального образования
«Московский государственный открытый университет»
Кафедра автоматики и электроники в машиностроении
Филоненко И.Н.
«Системное программирование»
Лабораторный практикум
Коломна
2010
УДК 004.4 ББК 32.97 Ф-55 |
|
Системное программирование: Лабораторный практикум для студентов очной и очно-заочной формы обучения для специальностей: 230105 – Программное обеспечение вычислительной техники и автоматизированных систем, 220201- «Управление и информатика в технических системах»: Сост. Филоненко И.Н. – Коломна: КИ (ф) МГОУ, 2010. – 53 с.
Лабораторный практикум составлен в соответствии с Государственными образовательными стандартами высшего профессионального образования по направлению подготовки дипломированного специалиста 230105 – «Программное обеспечение вычислительной техники и автоматизированных систем», 220201- «Управление и информатика в технических системах».
Лабораторный практикум одобрен на заседании кафедры «Автоматика и электроника в машиностроении» Коломенского института (филиала) МГОУ (протокол № 6 от 15.03.10) и утвержден учебно-методическим советом.
УДК 004.4
ББК 32.97
© Филоненко И.Н.
© КИ (ф) МГОУ, 2010
Введение
Цикл лабораторных работ направлен на освоение студентами принципов построения и функционирования операционных систем и вопросов создания параллельных взаимодействующих задач, выполняющихся в мультизадачных операционных системах.
Практическую реализацию заданий практикума предлагается разрабатывать на языке программирования С и отлаживать под управлением ОС UNIX или Linux. В процессе выполнения лабораторных работ студенты осваивают работу в ОС UNIX под управлением командного интерпретатора Bourne Shell, а также создание параллельных процессов в UNIX и алгоритмы их взаимодействия с использованием интерфейса системных вызовов, описанных в POSIX – стандарте.
Первая работа (4 часа) посвящена практическому освоению базовых принципов программирования на языке С в ОС UNIX.
Вторая работа (4 часа) направлена на освоение принципов работы под управлением командного интерпретатора Bourne Shell в ОС UNIX, изучение языка интерпретатора Bourne Shell и организацию сценариев, выполняемых этим интерпретатором.
Третья работа (8 часов) предназначена для освоения программного управления (на С) свойствами процесса в ОС UNIX, а также программирование создания процесса в ОС UNIX средствами языка С. Во второй части работы(4 часа) студенты осваивают моделирование команд интерпретатора Bourne Shell в программах на языке С с низкоуровневым управлением вводом-выводом средствами С.
Четвертая работа (8 часов) посвящена практическому освоению организации взаимодействия процессов через pipe в программах на С в UNIX а так же реализации модели клиент-сервер с использованием FIFO.
Лабораторная работа № 1
Введение в язык С
Цель работы
Освоить на практике организацию программ на языке С, применение основных функций ввода/вывода, управляющих структур, структур данных типа массив, а так же отладку и выполнение программ в ОС UNIX (Free BSD).
Домашнее задание
Изучить структуру программ на С.
изучить синтаксис объявления величин в программе на С.
Освоить синтаксис и выполнение управляющих структур языка С: присвоение, разветвление, цикл.
изучить организацию ввода/вывода с помощью библиотечных функций С (Scanf, printf, getchar, putchar).
изучить команды компиляции программы на С в ОС UNIX (gcc) и запуск исполняемого файла (a.out) .