- •Дисциплина «Системное программирование» Теоретические вопросы
- •Операционные системы: история
- •Системные вызовы управления терминалом
- •Операционные системы: назначение и основные функции
- •Управление процессами в операционных системах
- •Конкуренция процессов
- •Базовые примитивы доступа к файлам
- •Файлы с несколькими именами
- •Каталоги, файловые системы и специальные файлы
- •Базовые примитивы для работы с процессами.
- •Обработка сигналов в unix Нормальное и аварийное завершение
- •Примитивы межпроцессного взаимодействия: программные каналы.
- •Дополнительные средства межпроцессного взаимодействия в unix.
- •14. Напишите аналог команды ls –l
- •15. Напишите «часы», выдающие текущее время каждые 3 секунды
- •16. Напишите программу, которая ожидает ввода с клавиатуры в течение 10 секунд.Если ничего не введено – печатает «Нет ввода», иначе – «Спасибо».
- •17. Используя файловую систему /proc, получите информацию об открытых всеми процессами файлах
- •18. Напишите функцию mysleep(n), задерживающую выполнение программы на n секунд.
- •19. Составьте программу вывода строк файла в инверсном отображении
- •20. Создайте аналог команды df
- •21. Напишите программу создания и записи образов дискет
- •22. Напишите функции включения и выключения режима эхо-отображения набираемых на клавиатуре символов
- •23. Напишите программу для запуска команды ls в качестве дочернего процесса
- •24. Создайте два процесса, взаимодействующих через программный канал.
- •25.Создайте аналог команды sync
- •Понятие алгоритма. Свойства, способы задания, основные структуры алгоритма. Понятие о структурном подходе к разработке алгоритма.
- •Алгоритмическая структура цикл. Типы циклов. Способы управления циклами. Итерационные циклы. Простые и вложенные циклы.
- •Типы данных в языке Паскаль. Действия над ними. Стандартные типы данных и типы пользователя.
- •Операторы циклов в языке Паскаль. Примеры использования.
- •Цикл с предусловием
- •5.Условный оператор и оператор выбора вариантов в языке Паскаль. Структурная схема. Примеры использования.
- •6 Структурные типы данных. Массивы. Записи, вариантные, вложенные.
- •7.Обработка строковых данных в Паскале. Особенности использования.
- •8.Процедуры и функции в Паскале. Особенности использования.
- •Стандартные файлы и файлы пользователя в Паскале. Типы файлов. Процедуры и функции для работы с файлами.
- •10.Прямая и косвенная рекурсия. Особенности использования.
- •11.Структура языка Паскаль. Структура программ на языке Паскаль.
- •Модульное программирование. Стандартные модули. Назначение и использование.
- •Образцы решений задач
- •1. Написать программу для вычисления функции:
- •2. Сформировать двухмерный массив, состоящий из n X n элементов.
- •5. Задан текст s. Сколько раз в тексте встречается заданное слово (слова разделены пробелами)
- •Дисциплина «Основы баз данных и знаний»
- •1. Архитектура бд. Понятие 3-вой архитектуры бд. Ее преимущества. Внешний уровень. Концептуальный уровень. Внутренний уровень.
- •2. Классификация моделей данных.
- •3. Иерархическая модель. Преимущества и недостатки иерархических структур.
- •4. Сетевая модель данных.
- •5. Реляционная модель данных.
- •6. Нормализация. Пять нормальных форм.
- •7. Физические модели бд.
- •8. Файловые структуры. Файлы прямого доступа. Файлы последовательного доступа.
- •9. Индексные файлы. Индексно-прямые файлы. Индексно-последовательные файлы.
- •10. Распределенные субд. Распределенная обработка данных. Параллельные субд.
- •11. Преимущества и недостатки сурбд.
- •12 Правил Дейта для сурбд.
- •12. Объектно-ориентированные субд. Требования к оосубд.
- •13. Объектно-реляционные субд.
- •14. Структура языка sql.
- •15. Типы данных языка sql.
- •16. Создание схем, бд, таблиц операторами языка sql.
- •17. Индексация в субд. Типы индексов. Создание и удаление индекса операторами языка sql.
- •18. Редактирование данных в таблице бд операторами языка sql.
- •19. Построение запросов операторами языка sql.
- •20. Понятие агрегирующих функций.
- •21. Объединение таблиц. Построение многотабличных запросов операторами языка sql.
- •22. Субд Access. Понятия таблицы, запроса, формы, отчета, макроса.
- •Примеры решений задач
- •Дисциплина «Организация и функционирование эвм»
- •Характеристики жесткого диска.
- •2.Структура дискового сектора. Коды исправления ошибок ecc.
- •3.Назначение коэффициента чередования секторов и коэффициента перекоса головки.
- •4.Сравнительная характеристика интерфейсов жестких дисков.
- •5.Позиционирование магнитной головки. Виды сервосистем.
- •6.Кэширование диска. Виды кэша. (Кэш считывания, кэш со сквозной записью, кэш с отложенной записью и элеваторный кэш).
- •7.Форматирование жесткого диска. Физическое форматирование. Организация разделов на жестком диске.
- •8.Логическое форматирование. Таблица размещения файлов, ее виды.
- •9. Основная оперативная память. Динамическая память, принцип действия запоминающих ячеек. Архитектура динамической памяти, виды сигналов.
- •Типы динамической памяти. Асинхронная, синхронная память.
- •Модули памяти. Организация банков памяти.
- •12.Статическая память, ее разновидности. Кэш-память. Первичный и вторичный кэш.
- •13.Энергонезависимая память, типы памяти. Флэш-память.
- •14.Логическая структура памяти пэвм.
- •15.Сравнительная характеристика видов оптических дисков.
- •16.Сравнительная характеристика видов мониторов.
- •17.Текстовый и графический режим работы монитора. Формирование цвета.
- •18.Сравнительная характеристика видов принтеров.
- •«Теория автоматического управления»
- •Классификация сау
- •Связь входа и выхода. Способы построения моделей. Переходная функция и импульсная характеристика.
- •Типовые звенья линейных систем (усилитель, апериодическое звено, интегрирующее звено, колебательное звено, звено запаздывания).
- •4. Типовые звенья линейных систем (усилитель, апериодическое звено, интегрирующее звено, колебательное звено, звено запаздывания).
- •5. Частотные характеристики. Понятие лачх и лфчх.
- •6. Логарифмические частотные характеристики типовых линейных звеньев.
- •7. Структурные схемы и правила их преобразования.
- •8. Требования к системам автоматического управления (перечислить). Понятие точности управления.
- •9. Частотные критерии устойчивости. Критерий Найквиста.
- •10. Алгебраические критерии устойчивости. Критерий Гурвица. Критерий Вишнеградского.
- •11. Оценка качества системы. Запасы устойчивости.
- •12. Синтез регуляторов. Задачи синтеза
- •13. Синтез линейны непрерывных сау. Коррекция сау
- •14. Разновидности и свойства сау в зависимости от параметров синтеза.
- •15. Приведение задач тау к нулевым начальным условиям. Линеаризация математического описания системы.
- •16. Математические модели. Способы их построения. Линейность и нелиней-ность систем и моделей.
- •17. Преобразование произвольного сигнала линейным звеном
- •18. Интегральные оценки качества переходных процессов: линейные, квадра-тичные.
- •19. Типовые линейные законы регулирования. Виды регуляторов.
- •20. Расчет оптимальных параметров настройки регуляторов.
- •8.Характеристическое уравнение замкнутой системы
21. Напишите программу создания и записи образов дискет
#include <stdio.h>
#include <fcntl.h>
void fdread(char *file)
{int fdin, fdout, kp;
char buf [512];
fdout=open(file, O_WRONLY | O_CREAT | O_TRUNC, 0640);
if (fdout==-1) {printf("Невозможно создать %s файл\n", file);return;}
fdin=open("/dev/fd0", O_RDONLY);
while ((kp=read(fdin, buf,512))>0) write (fdout, buf, kp);
close (fdin);
close (fdout);}
void fdwrite(char *file){
int fdin, fdout, kp;
char buf [512];
fdin=open(file, O_RDONLY, 0640);
if (fdin==-1){printf("Невозможно открыть %s файл\n", file);return;}
fdout=open("/dev/fd0", O_WRONLY);
while ((kp=read(fdin, buf,512))>0) write (fdout, buf, kp);
close (fdin);
close (fdout);
}
main (int argc, char * argv[])
{if (argc!=3)
{printf("Используйте %s [-r-w] файл\n", argv[0]);
exit(0);
}
if (strcmp(argv[1],"-r")==0)
fdread(argv[2]);
else if (strcmp(argv[1],"-w")==0)
fdwrite(argv[2]);
else printf("Ключ не -r и не -w\n");
}
22. Напишите функции включения и выключения режима эхо-отображения набираемых на клавиатуре символов
#include <stdio.h>
#include <termio.h>
#define SUCCESS 0
#define ERROR (-1)
/* Структура tsaved будет содержать параметры терминала */
static struct termios tsaved;
/* Равно TRUE если параметры сохранены */
static int saved = 0;
int tsave(void)
{if(isatty(0) && tcgetattr(0,&tsaved) >= 0)
{ saved = 1;
return (SUCCESS); }
return (ERROR);}
int tback(void) /* Восстанавливает состояние терминала */
{ if( !isatty(0) || !saved)
return (ERROR);
return tcsetattr(0, TCSAFLUSH, &tsaved);}
int echooff(void)
{static struct termios term;
if (isatty(0) && tcgetattr(0,&term) < 0)
{printf("Ошибка взаимодействия с терминалом!"); return(-1);
}
term.c_lflag &= ~ECHO;
printf("Echo-режим отключен!\n");
tcsetattr(0, TCSAFLUSH, &term);
return (1); }
int echoon(void)
{printf("Echo-режим включен!\n");
tcsetattr(0, TCSAFLUSH, &tsaved);
return (1); }
main()
{ char buf[256];
if(tsave() == 1)
{ fprintf(stderr, "Невозможно сохранить параметры
терминала\n");
exit(1); }
echooff();
printf("Попробуйте ввести строку:\n");
scanf("%s",buf);
printf("Введено %s\n", buf);
echoon();
printf("Попробуйте ввести строку:\n");
scanf("%s",buf);
tback();
exit(0);
} }
23. Напишите программу для запуска команды ls в качестве дочернего процесса
#include <sys/types.h>
#include <unistd.h>
main()
{pid_t pid;
Switch (pid = fork ())
{case -1
Fatal (“Ошибка вызова fork”);
Break;
Case 0
Execl (“/bin/ls”,”ls”,”%”,(char*)0);
Fatal (“Ошибка вызова execl ”);
Break;
Wait()
Printf(“программа ls завершилась ”)
Exit :
}}
24. Создайте два процесса, взаимодействующих через программный канал.
#include <unistd.h>
main()
{int k1[2], k2[2], pid; int c;
pipe(k1); pipe(k2);
pid=fork();
if (pid>0)
{close(k1[0]); close(k2[1]);
do
{c=getchar(c);
write(k1[1], &c, sizeof(c));
read(k2[0], &c, sizeof(c));
putchar(c);
}
while (c!=-1);
wait(0); }
else
{for (;;)
{read(k1[0], &c, sizeof(c));
if (c==-1) break;
if (islower(c)) c=toupper(c);
write(k2[1], &c, sizeof(c)); }
exit(0); } }