- •Дисциплина «Системное программирование» Теоретические вопросы
- •Операционные системы: история
- •Системные вызовы управления терминалом
- •Операционные системы: назначение и основные функции
- •Управление процессами в операционных системах
- •Конкуренция процессов
- •Базовые примитивы доступа к файлам
- •Файлы с несколькими именами
- •Базовые примитивы для работы с процессами.
- •Каталоги, файловые системы и специальные файлы
- •Обработка сигналов в 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.Характеристическое уравнение замкнутой системы
16. Напишите программу, которая ожидает ввода с клавиатуры в течение 10 секунд.Если ничего не введено – печатает «Нет ввода», иначе – «Спасибо».
#include <signal.h>
#include <stdio.h>
int timeout=0;
void f(int s)
{timeout=1;
puts("Нет ввода!");
exit(0); }
main ()
{char buf[256];
struct sigaction s1,s2;
sigfillset(&(s1.sa_mask));
s1.sa_handler=f;
sigaction(SIGALRM, &s1, &s2);
printf("Введите строку ");
alarm(10);
gets(buf);
printf("Спасибо!\n");
sigaction(SIGALRM, &s2, NULL); }
17. Используя файловую систему /proc, получите информацию об открытых всеми процессами файлах
#include<dirent.h>
#include<sys/stat.h>
#include<stdio.h>
#include<stdlib.h>
main()
{ DIR *dp, *d2;
struct dirent *elem, *e2;
int pid;
char name[200],fullname[200],realname[300];
struct stat st;
dp=opendir("/proc");
if(dp==NULL)
{ perror("Ошибка чтения /proc");
return 1;
}
while((elem=readdir(dp))!=NULL)
{ pid=atoi(elem->d_name);
if(pid>0)
{ sprintf(name,"/proc/%s",elem->d_name);
if(stat(name,&st)==0)
{ if(S_ISDIR(st.st_mode))
{ strcat(name,"/fd");
d2=opendir(name);
if(d2!=NULL)
{ printf("Файлы, открытые в процессе %d:\n",pid);
while(e2=readdir(d2))
{ printf("\tDeskriptor %s:",e2->d_name);
strcpy(fullname,name);
strcat(fullname,"/");
strcat(fullname,e2->d_name);
readlink(fullname,realname,299);
printf("%s\n",realname);
}
closedir(d2);
}}}}}
closedir(dp);
}
18. Напишите функцию mysleep(n), задерживающую выполнение программы на n секунд.
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
int alarm_flag = 0;
void setflag(int s)
{alarm_flag = 1; }
int mysleep(int n)
{int prev_timer;
pid_t pid;
static struct sigaction act;
act.sa_handler=setflag;
sigaction(SIGALRM, &act, NULL);
printf("Программа остановлена на %d секунд\n", n);
prev_timer=alarm(n);
pause();
if (alarm_flag=1) printf("Программа возобновлена!\n");
else mysleep(n);
alarm(prev_timer);
return 0; }
main ()
{mysleep(5);
19. Составьте программу вывода строк файла в инверсном отображении
#include <fcntl.h>
#include <stdio.h>
#include <sys/stat.h>
main()
{char c, name[80];
long fl, i;
int fd; struct stat st;
printf ("Введите имя файла: ");
scanf("%s", name);
if (stat (name, &st)==-1)
{perror (name);
return 1; }
fl=st.st_size;
if ((st.st_mode & S_IRUSR)==0)
{printf("Файл %s не удается прочитать!\n", name); }
fd=open(name, O_RDONLY);
for(i=fl-1; i>=0; i--)
{lseek(fd,i,SEEK_SET);
if (read(fd, &c, 1)<1) break;
putchar(c); }
close (fd); }
20. Создайте аналог команды df
#include <sys/types.h>
#include <sys/statvfs.h>
#include <stdlib.h>
#include <stdio.h>
main(int argc, char **argv)
{ struct statvfs buf;
if(argc != 2)
{ fprintf(stderr, "Применение: fsys имя_фaйлa\n");
exit(1); }
if(statvfs(argv[1], &buf) != 0)
{ fprintf(stderr, "Ошибка вызова statvfs\n");
exit(2); }
printf("%s:
полное число блоков по %d байт \t%d
всего занятых блоков \t\t\t%d
свободных блоков \t\t\t%d\nсвободных индексных дескрипторов \t%d
идентификатор файловой системы \t\t%d\n",
argv[1], buf.f_frsize, buf.f_blocks,
buf.f_blocks-buf.f_bfree, buf.f_bfree,buf.f_ffree,buf.f_fsid);
exit(0);}
