Главная страница
Навигация по странице:

  • 1. ОРГАНИЗАЦИОННО -МЕТОДИЧЕСКИЕ УКАЗАНИЯ 1.1. Цели и задачи изучения дисциплины

  • 1.2. Перечень компетенций, приобретаемых при изучении дисциплины

  • 1.3. Основные виды занятий и особенности их проведения

  • 1.3.1. Лекционные занятия

  • 1.3.2. Лабораторные работы

  • 1.4. Взаимосвязь аудиторной и самостоятельной работы студентов при изучении дисциплины

  • 1.5. Виды контроля знаний студентов и их отчетности

  • Промежуточная аттестация

  • 1.6. Техническое и программное обеспечение дисциплины

  • 2. СОДЕРЖАНИЕ ДИСЦИПЛИНЫ 2.1. Введение

  • 2.2. Перечень тем для лекционных занятий и самостоятельного изучения дисциплины Тема 1.

  • Тема 2.

  • 2.3. Перечень тем лабораторных занятий Тема 1.

  • Тема 4.

  • Тема 7.

  • 3. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ИЗУЧЕНИЮ ДИСЦИПЛИНЫ 3.1. Перечень и тематика самостоятельных работ студентов

  • 3.2. Состав технических средств и рекомендации по работе с ними

  • 3.3. Обзор рекомендованной литературы

  • 4. СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ 4.1. Основная литература

  • 4.2. Дополнительная литература

  • Введение в системное программирование. 12978_Системное_ПО_2014. Программа дисциплины 12978 по специальности 230100. 62 Информатика и вычислительная техника


    Скачать 124 Kb.
    НазваниеПрограмма дисциплины 12978 по специальности 230100. 62 Информатика и вычислительная техника
    АнкорВведение в системное программирование
    Дата01.12.2019
    Размер124 Kb.
    Формат файлаpdf
    Имя файла12978_Системное_ПО_2014.pdf
    ТипПрограмма дисциплины
    #97974

    1
    Федеральное агентство по образованию
    Владивостокский государственный университет экономики и сервиса
    _________________________________________________________
    СИСТЕМНОЕ ПРОГРАММНОЕ
    ОБЕСПЕЧЕНИЕ
    Учебная программа дисциплины 12978
    по специальности
    230100.62 «Информатика и вычислительная техника»
    Владивосток
    Издательство ВГУЭС
    2014

    2
    ББК 32.973
    Учебная программа по дисциплине «Системное программное обес- печение» составлена в соответствии с требованиями ГОС ВПО.
    Предназначена студентам по специальности 230100.62 «Инофрма- тика и вычислительная техника».
    Составитель: Б.К. Васильев, доцент, кафедра информационных сис- тем и компьютерных технологий .
    Утверждена на заседании кафедры информационных и технических систем от 22.04.2014 г., протокол № 10.
    Рекомендована к изданию учебно -методической комиссией инсти- тута информатики, инноваций и бизнес -систем ВГУЭС.
    ©
    Издательство Владивостокский государственный университет экономики и сервиса, 2014

    3
    ВВЕДЕНИЕ
    Дисциплина «Системное программное обеспечение» относится к фе- деральному компоненту цикла общепрофессиональных дисциплин спе- циальности 230100.62 «Информатика и вычислительная техника» и введена в учебный план в соответствии с требованиями Государ- ственного образовательного стандарта указанной специальности.
    Дисциплина базируется в основном на знаниях архитектуры вы- числительных машин, процессоров современных ЭВМ а также таких дисциплинах, как «Основы алгоритмизации» , «Технология программи- рования», «Операционные системы, среды и оболочки» .
    Знания, полученные при изучении дисциплины «Системное про- граммное обеспечение» используются в последующих дисциплинах, связанных с разработкой информационных систем и в практической деятельности инженера.
    Данная программа составлена в соответствии с требованиями Го- сударственного образовательного стандарта высшего профессионально- го образования специальности 230100.62 «Информатика и вычислительная техника».

    4
    1. ОРГАНИЗАЦИОННО -МЕТОДИЧЕСКИЕ УКАЗАНИЯ
    1.1. Цели и задачи изучения дисциплины
    Целью изучения дисциплины «Системное программное обеспече- ние» является теоретическая и практическая подготовка студентов в области разработки программного обеспечения для высокопроизводи- тельных параллельных вычислительных систем (ПВС), конфигурации и администрирования таких систем. Знания, полученные в результате ос- воения дисциплины, помогут при разработке системных программных компонентов современных информационных и расчетных программ, в проектировании и реализации системных компонентов операционных систем в такой степени, чтобы студенты могли самостоятельно выби- рать средства реализации, находить необходимые программные и тех- нологические решения для практически важных системных задач.
    Основные задачи изучения дисциплины:
    - приобретение студентами знаний о способах работы пользова- тельского приложения с ядром системы;
    - ознакомление с технологиями разработки параллельного про- граммного обеспечения (ППО) с использованием различных библиотек, языков и сред;
    - приобретение практических навыков по использованию средств синхронизации, блокировок, барьеров при создании многопоточных про- грамм, исследованию и устранению тупиковых ситуаций ( deadlocks) в параллельных ветвях программы.
    Приобретение теоретические и практические знания по обработке текстовой информации в операционных системах (ОС). Работа с регу- лярными выражениями.
    1.2. Перечень компетенций, приобретаемых
    при изучении дисциплины
    В результате теоретического изучения дисциплины студент должен приобрести следующие компетенции: владение основными системными средствами для низкоуровневой работы с файлами, каталогами и дру- гими объектами ОС, владение способами создания параллельных алго- ритмов и программ и языками параллельного программирования для написания многонитиевых (многопоточных) программ, ориентирование в современных технологиях разработки распределенного программного обеспечения и прикладных программ, обработка конфигурационных и протокольных текстовых файлов на скрипт -языке (perl).
    В результате практического освоения дисциплины студент должен уметь: правильно формулировать требования к системным программам

    5 и задачам в соответствии с платформой, аппаратными ресурсами, про- изводить декомпозицию задачи и реализовывать решение на адекватно выбранном языке программирования.
    1.3. Основные виды занятий и особенности
    их проведения
    Дисциплина «Системное программное обеспечение» изучается сту- дентами очной формы обучения в седьмом семестре Общее количество часов, которое отводится для изучения дисциплины – 184.
    Количество аудиторных часов – 64, из них: лекций – 32 час, лабо- раторных работ – 32 часов. На самостоятельную работу отводится 120 ча- сов, из них: 20 часов на подготовку к экзамену, 50 часов на оформление отчетов и подготовку к защите лабораторных и курсовой работ, 50 ча- сов на самостоятельное изучение материала и консультации.
    1.3.1. Лекционные занятия
    При проведении лекций учитывается, что значительная часть мате- риала постоянно обновляется, описана только в периодической литера- туре, чаще всего на английском языке, и не может выноситься на само- стоятельную работу. На лекциях рассматриваются не только теоретиче- ские вопросы, множество системных вызовов и приемов работы с ними, но и примеры разработки параллельных программ с использованием различных языков и библиотек подпрограмм, а также тенденции в раз- витии аппаратных и программных средств для эффективного выполне- ния кода на многоядерных платформах.
    1.3.2. Лабораторные работы
    Лабораторные работы все – компьютерные, проводятся с исполь- зованием программных средств gcc, make, configure, MICO, PVM,
    FLTK, Samba, Kdevelop, QTDesigner . Программными средами являются операционные системы Linux с надстройками pvm, LAM/MPI.
    1.4.3. Курсовая работа
    Выполняется по одному из выбранных направлений и представляет самостоятельную работу студента под руководством преподавателя.
    Тематика курсовых работ, требования и структура пояснительной за- писки подробно описаны в методических указаниях [7]. Основной зада- чей курсовой работы является приобретение навыков системного анали- за проблемы и тщательности отладки ПО.

    6
    1.4. Взаимосвязь аудиторной
    и самостоятельной работы студентов
    при изучении дисциплины
    В ходе изучения дисциплины студент слушает лекции по теорети- ческому материалу, ряд вопросов выносится на самостоятельное изуче- ние. Для помощи студенту в освоении теоретического материала лекци- онных занятий и при написании курсовой работы предусматриваются консультации ведущего преподавателя.
    Помимо посещения лекций и лабораторных занятий для освоения теоретического материала и приобретения практических навыков, пре- дусматривается в рамках самостоятельной работы студента ознакомле- ние с исходными текстами приложений «open source», написанных с использованием MPI, библиотеки pthreads, perl.
    Для подготовки к экзамену студенту отводится 20 часов самостоя- тельной работы и консультация ведущего преподавателя перед экзаме- ном.
    Для выполнения отчетов по лабораторным работам и для отладки программ предусматривается выделение времени в компьютерном клас- се кафедры и консультации ведущего преподавателя.
    1.5. Виды контроля знаний студентов и их отчетности
    В ходе изучения дисциплины предусматриваются следующие виды контроля знаний студентов: текущая и промежуточная аттестация.
    Текущая аттестация предназначена для контроля знаний студен- тов в середине семестра и включает:
    - защиту отчетов по выполняемым лабораторным работам;
    - оценку знаний и умений студентов при проведении консультаций по лекционным и лабораторным занятиям;
    - оценку степени завершенности курсовой работы.
    Текущая аттестация проводится в форме защит лабораторных, курсовых работ и является фактическим допуском к экзамену в соответ- ствии с Положением о рейтинговой системе оценки успеваемости сту- дентов во Владивостокском государственном университете экономики и сервиса. Аттестация может быть проведена (в виде исключения) в фор- ме письменного опроса по разделам дисциплины, изученных студентом в семестре, при этом для выставления оценки учитывается количество выполненных и защищенных лабораторных работ за отчетный период, активность студентов на консультациях. Тестирование допускается толь- ко для обнаружения пробелов в теоретических знаниях и с предоставле- нием полного доступа к результатам тестирования (с указанием невер- ных ответов) преподавателю и студентам.

    7
    Результаты текущей и промежуточной аттестаций заносятся в ве- домость установленной формы (возможно в цифровой форме).
    Промежуточная аттестация – экзамен в седьмом семестре. Усло- вием допуска студента к экзамену является успешное прохождение двух текущих аттестаций в соответствии с требованиями Положения о рей- тинговой системе оценки успеваемости студентов во ВГУЭС. Кроме того, студент должен выполнить и защитить не менее 80% всех лабора- торных работ. Итоговая оценка формируется на основе результатов те- кущих и промежуточной аттестаций.
    1.6. Техническое и программное обеспечение
    дисциплины
    При проведении лекционных занятий особого оборудования в силу традиционности дисциплины, и слабого усваивания студентами знаний, представляемых только визуально, мультимедийных презентаций не тре- буется.
    Для проведения лабораторных работ используются программные средства редактирования и компиляции программ в ОС
    Linux (UNIX), стандартные для дисциплин данного направления во ВГУЭС gcc, Kde- velop, QtDesigner, FLTK . Программными средами являются операцион- ные системы Linux и дополнительное программное обеспечение ( LAM-
    MPI, perl, MICO).

    8
    2. СОДЕРЖАНИЕ ДИСЦИПЛИНЫ
    2.1. Введение
    При проведении лекций учитывается, что материал, излагаемый по дисциплине, относится преимущественно к базовой для данной дисцип- лины ОС Linux. Поэтому большинство примеров рассматривается с ис- пользованием диалектов языков программирования C и C++, реализо- ванных именно для этой ОС. В ходе освоения материала происходит знакомство с основными понятиями разработки программного обеспе- чения системного уровня, использования параллельного и распределен- ного программирования, управления потоками вычислений с помощью скриптов.
    2.2. Перечень тем для лекционных занятий
    и самостоятельного изучения дисциплины
    Тема 1. Задачи дисциплины. Понятие системы, системного анализа, системного подхода к разработке программного обеспечения и систем- ного программирования. Уровни системного программирования (ядро
    ОС, пользовательская программа, управляющая программа). Проблемы использования современных высокопроизводительных компьютеров.
    Тема 2. Системные вызовы. Понятие системных вызовов и спосо- бов их реализации в ОС Linux, UNIX, DOS и Windows. Выполнение программных прерываний, уровень ядра ОС.
    Тема 3. Системные вызовы для работы с файлами, каталогами, специальными файлами. Изменение прав собственности и прав доступа к ресурсам. Функции для блокировки доступа к файлу. Связь функций низкого уровня с библиотечными функциями языка С. Понятие обер- точной функции (wrapper).
    Тема 4. Системные вызовы для осуществления межпроцессного обмена. Сигнально-семафорный механизм. Маскирование сигналов. Об- работчики сигналов. Функции signal и sigaction. Разделяемая память, сообщения. Системные вызовы для работы с ними.
    Тема 5. Потоки выполнения кода (нити). Posix -совместимые API потоков. Создание, синхронизация, завершение потоков. Использование взаимоисключающих блокировок, барьеров и условных переменных.
    API потоков выполнения фирмы Sun и определения POSIX. Синхрони- зация потоков выполнения: взаимоисключающие блокировки, условные переменные, барьеры, блокировки чтения-записи.
    Тема 6. Способы доступа к внутрисистемной информации. Вирту- альная файловая система «/proc». Создание графических оболочек (frontend)

    9 для консольных приложений и механизмов преобразования информа- ции (backend).
    Тема 7. Параллельные алгоритмы. Отличия параллельных алго- ритмов от последовательных алгоритмов. Постановка задачи распарал- леливания существующих сериальных алгоритмов. Пример суммирова- ния массива. Реализация параллельных алгоритмов с использованием процессов. Виды межпроцессной коммуникации (сигналы, семафоры, разделяемая память, каналы, сообщения). Оценка эффективности алго- ритма с учетом времени доставки кода и данных вычислительному узлу.
    Законы Амдала. Целесообразность распараллеливания. Как анализиро- вать зависимость данных и кода в последовательной программе? Поря- док вычислений, граф зависимости. Модель «грубой силы». Примеры решений для PRAM, BSP, LogP . Преобразования параллелизации цик- лов. Доставка данных, отображение массива данных на распределенную систему, избыточность. Влияние аппаратной реализации PRAM и про- блемы когерентности данных. Модели конкурентной и исключительной примитивных операций с памятью (EREW, CRCW, CREW, QRQW).
    Тема 8. Средства разработки параллельных вычислений с исполь- зованием потоков (нитей) кода. Процессы и потоки (нити) управления.
    Понятие процесса. Процессы с поддержкой многопоточности. Диспет- черизация процессов. Динамическая и статистическая связь между про- цессором и очередью. Ведущие и разделяемые планировщики процес- сов. Взаимодействие планировщика со структурами системных данных и примитивов ядра ОС. Состав и функции диспетчера и системных управляющих программ – программы инициализации, программы тай- мирования, программы управления восстановлениями. Краткосрочное планирование процессов и потоков в многопроцессорной системе. Со- ставляющие ядра и пользователя в процессах в UNIX. Сигналы как про- стейшие средства коммуникации. Коммуникация и синхронизация про- цессов в централизованных архитектурах Основные понятия и опреде- ления. Задача передачи данных между процессами "читатель -писатель.
    Тупики. Модели для анализа свойств асинхронных процессов. Алго- ритм Дийкстры для задачи об обедающих философах. Понятие тупико- вой ситуации и способы борьбы с ней.
    Тема 9. Средства разработки распределенных вычислений с ис- пользованием параллельной виртуальной машины PVM. Использование функций библиотеки Pvmlib. Состав функций. Компиляция и запуск программ в среде PVM.
    Тема 10. Протокол и библиотеки MPI. Состав функций, типы дан- ных, организация обмена данными. Пример использования библиотеки
    MPI. Среда выполнения LAM. Установка, использование (компиляция и запуск программ, конфигурация вычислительной системы).

    10
    Тема 11. Удаленные вызовы процедур. Высокоуровневый и низко- уровневый интерфейс программирования. XDR-преобразования, аутен- тификация, широковещательный режим. Использование технологий
    DCOM и CORBA для создания распределенных приложений. Язык опи- сания интерфейсов IDL.
    Тема 12. Язык Perl как средство обработки текстовой информации.
    Синтаксис языка Perl. Переменные, операции, операторы. Регулярные выражения. Массивы, хэши, списки. Ссылки, функции и подпрограммы.
    Тема 13. Сложные типы языка Perl: список списков, список хэшей, хэш списков, хэш хэшей, структуры высших порядков. Методы работы со сложными типами, ввод и вывод, обращения к элементам структур.
    Объектные свойства языка Perl 5 -й версии и выше. Внутреннее пред- ставление информации в языке Perl. Дерево классов, описывающее ти- пы хранимой информации (perl guts).
    2.3. Перечень тем лабораторных занятий
    Тема 1. Блокировка файлов, работа с файлами большого размера.
    Создание битовой карты занятости секторов раздела жесткого диска.
    Тема 2. Применение семафоров в классическая задача Дийкстры об обедающих с задаваемым количеством разделяемых ресурсов (вилок) и потребителей (философов).
    Тема 3. Параллельное вычисление кратного интеграла численным методом с использованием механизма потоков на многоядерном про- цессоре. Измерение времени выполнения.
    Тема 4. Использование языка Perl для синхронизации файлов с па- ролями (passwd, shadow) в компьютерном классе.
    Тема 5. Знакомство с компилятором с языка OCCAM, – kroc, про- грамма вычисления числовых последовательностей конвейерным спо- собом. Программирование отдельных звеньев конвейера.
    Тема 6. Программа вычисления интеграла типа свертки на ОККАМе, реализация конвейерным способом на основе прототипа умножения мат- рицы на вектор.
    Тема 7. Разработка распределенных приложений с использованием
    PVM, MPI или CORBA (модель обслуживания клиентов банка через банкомат).
    Тема 8. Написание модуля администрирования паролей (на языке
    Perl) с помощью webmin.

    11
    3. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ
    ПО ИЗУЧЕНИЮ ДИСЦИПЛИНЫ
    3.1. Перечень и тематика самостоятельных работ
    студентов
    В рамках общего объема часов, отведенных для изучения дисцип- лины, предусматривается выполнение следующих видов самостоятель- ных работ студентов (СРС): изучение теоретического материала при подготовке к защите лабораторных работ, итоговое повторение теоре- тического материала.
    Для самостоятельного изучения дисциплины выносится часть ма- териала по темам 4, 6 -8 дисциплины с возможностью консультации у ведущего преподавателя общим объемом 50 часов СРС. Для закрепле- ния материала и приобретения навыков расчета рекомендуется выпол- нение следующих задач:
    1. Удаленная работа на многоядерном сервере, для чего студенты получают регистрационное имя и пароль у преподавателя;
    2. Изучение системных вызовов и приобретение навыков при рабо- те с ними на языке С, обработка ошибок (при отрицательном коде воз- врата).
    3. Установка и настройка LAM-MPI,.
    Задания и методические указания по их выполнению, вместе с не- обходимыми программными средствами для выполнения работ, разме- щаются перед выполнением соответствующих работ на сервере кафед- ры ИТС [4].
    Для выполнения лабораторных работ в соответствии с разделом
    2.2 настоящей учебной программы студент должен предварительно са- мостоятельно освоить теоретический материал соответствующих тем.
    Для защиты работы он должен знать теоретический материал и продемонстрировать знание путем написания программ. Объем СРС, отводимый на эту работу составляет 50 часов.
    На подготовку к экзамену отводится 20 часов СРС.
    3.2. Состав технических средств
    и рекомендации по работе с ними
    Для проведения лабораторных работ и самостоятельного изучения дисциплины используются компиляторы языков программирования C и
    C++ и утилиты, связанные с их использованием в ОС UNIX (make, auto- config, distcc, Kdevelop etc. ). При выполнении лабораторных работ, свя- занных с использованием специфических программных средств (
    Perl,

    12
    MICO, LAM/MPI, etc.) студенты устанавливают эти продукты самостоя- тельно, загружая их с сервера [4]. Для выполнения работ на языке
    ОККАМ рекомендуется использовать мобильный компилятор kroc.
    3.3. Обзор рекомендованной литературы
    Дисциплина «Системное программное обеспечение» относится к бурно развивающейся области программирования, в которой совершен- ствование аппаратной части опережает развитие практических средств разработки программ, а теоретические исследования почти отсутству- ют. По тематике курса выпущено большое количество печатных изда- ний, в качестве основы можно рекомендовать книги [1
    -3]. При выпол- нении лабораторных работ, связанных с разработкой
    MPI, рекоменду- ются книги из [4]. Для ознакомления с методами администрирования м способами решения задач управления потоком кода можно использо- вать [2]. Для изучения места курса в составе программистских дисцип- лин можно рекомендовать издание [3].
    Для выполнения лабораторных работ во ВГУЭС материалы в дос- таточном количестве изданы и размещены на сервере « bkv» [4].
    По языку ОККАМ, пожалуй существует единственный русскоя- зычный источник [6]. Эти материалы соответствуют перечню лабора- торных работ раздела 2.2.

    13
    4. СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
    4.1. Основная литература
    Терренс Чан. Системное программирование на С++ для UNIX. –
    СПб.: Вhv, 2007.
    Торчинский Ф. UNIX. Практическое пособие администратора. – 2-е изд. – СПб.; М.: Символ, 2008.
    Одинцов И. Профессиональное программирование: системный под- ход. – 3-е изд. – СПб.: Вhv, 2009.
    4.2.
    Дополнительная
    литература
    ftp://bkv.vvsu.ru/SPO – особенно полезная информация в папке
    BOOKS. Здесь же материалы к лабораторным.
    Робачевский. А.и др. Операционная система
    UNIX. – СПб.: Bhv, 2010.
    Джоунз Г. Программирование на языке Оккам: пер. с англ.
    – М.:
    Мир,1989. – 208 с.
    Васильев Б.К. Системное программное обеспечение. Методические указания по курсовыми работам. – Владивосток: Изд-во ВГУЭС, 2002.

    14
    СОДЕРЖАНИЕ
    ВВЕДЕНИЕ ....................................................................................................1 1. ОРГАНИЗАЦИОННО -МЕТОДИЧЕСКИЕ УКАЗАНИЯ .......................4 2. СОДЕРЖАНИЕ ДИСЦИПЛИНЫ ............................................................8 3. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ
    ПО ИЗУЧЕНИЮ ДИСЦИПЛИНЫ ........................................................ 11 4. СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ .................................. 13


    написать администратору сайта