Петербургский Университет Телекомунникаций им проф. Бонч-Бруевича курс лекций

Вид материалаКурс лекций

Содержание


Связывание информации.
Подобный материал:
1   2   3   4   5   6   7   8   9   10   11

ОС




Рассмотрим 3-ий аспект:
  1. первую попавшуюся страницу;

+ простая тактика, не требующая дополнительных ресурсов;

- проигрыш в быстродействии.
  1. страницу, которой долго не было в обращении;

+ выигрыш в быстродействии (по сравнению с 1), по крайней мере);
  • дополнительные ресурсы для обеспечения механизма;
  • вероятность неоптимальной выборки выгружаемой страницы.
  1. страницу, которая дольше всех находится в памяти;

 3)  2)
  1. страницу с минимальным полем обращения;

 4)  2)  3)
  1. страницу с битовым полем (значением 0 в нем, а если 1 – то не выталкиваем ее);


Выгрузка необходима в случае недостатка задачи в количестве необходимых ей страниц.


Число
обращений

По количеству ресурсов зависимости расположены в порядке возрастания, т.е. 3, 1, 2


- доля страниц

Р
Для того, чтобы добавить к Wзагр еще 0.1, необходимо круто увеличить число рабочих страниц
абочее множество – это число страниц, которое необходимо задаче для ее решения в дискретный момент времени.



Число страниц

- вероятность загрузки (кривая на графике)

Связывание информации.


Информация рассматривается как объект.


Имя Цепь доступа Защита

(имя, переменнаяВАФА)


К сложным объектам цепь доступа лучше всего организовывать через дескриптор (указатель).


Преимущества:

а) дескриптор имеет фиксированный размер памяти;

б) дескриптор является точкой перевала и через него можно осуществлять контроль доступа;

в) дескриптор имеет косвенный доступ к объекту и поэтому позволяет изменять цепь доступа динамически (объект может быть один, а дескриптор у каждого пользователя может быть свой  дескрипторов может быть несколько);

г) можно реализовывать приоритеты для различных пользователей через дескрипторы.


Защита:
  1. ликвидация цепи доступа;
  2. проверка полномочий (через дескриптор в частности);
  3. динамическая установка связей к объекту.


Связывание информации:

а) установление цепи доступа на этапе написания программы (программа пишется на машинном языке);

+ оптимальная программа;
  • сложное написание;
  • сложная отладка;
  • немобильность программы.

б) на этапе компиляции (интерпретатором);

+ программа запускается сразу;

+ занимает меньший объем памяти;

+ более гибкая;
  • интерпретации происходят перед каждым запуском;
  • немобильность;

в) на этапе загрузки (run time);

ВП  ФП (ВП связывается с ФП)

+ мобильность.

г) динамическое связывание (по мере надобности);

+ гибкость;
  • проигрыш в быстродействии (из-за связывания переменной с ее адресом).

Введение в Си

Основные элементы программирования

  1. Ввод
  2. Типы данных
  3. Операции
  4. Вывод
  5. Условное выполнение
  6. Циклы
  7. Подпрограммы


Вывод

Printf ( );

Примеры:
  1. #include

main ( )

{

printf ("Hello, world");

}
  1. #include

main ( )

{

int a;

a = 10;

printf ("%d, a);

}


Типы данных

Int целые

Float с плавающей точкой

Char символьные

Double двойные ( с плавающей точкой)

Указатель


Пример:
  1. #include

main ( )

{

int a,b;

float ratio;

print ("Введите 2 числа:");

scanf ("%d %d", &a &b);

ratio = a/b;

printf ("Отношение = %f\n", ratio);

}


ratio - переменная

  1. #include

#include

main ( )

{

char msg [30];

strcpy (msg, "Привет, мир");

puts (msg);

}


Операции

* - умножение

/ - деление

% - модуль

+

-

Условные операторы

If - условие

Ветвь 1

Else

Ветвь 2


Пример:

#include

main ( )

{

int a;

printf ("Введите число:");

scanf ("%d ; &a);

if (a>=1");

printf ("a>=1");

else

printf ("a<1");

}


SWITCH (a)

{

case 1:

funct 1 ( );

break;

case 2:

funct 2 ( );

break;

default:

funct d ( );

break;

}


Операторы цикла


For (i = 0; i < M; i ++)

{

funct (i);

}


while (a < b)

{

funct (a);

a + +;

}


do

{

funct (a);

a + +;

}

while (a

Указатели

Main ( )

{

int ivar, *iptr;

iptr = & ivar;

ivar = 421;

printf ("Адрес ivar = %р\n", & ivar);

printf (" Содержимое ivar = %d\n", ivar);

printf ("Содержимое iptr = %p\n", iptr);

printf ("Указываемое значение = %d\n", *iptr);

}


main ( )

{

int *iptr;

iptr = (int*) malloc (size of (int));

*iptr = 421;

printf ("Содержимое iptr = %p\n", iptr);

printf ("Указываемое значение = %d\n", *iptr);

}


Структура

Struct

{

char name [25];

char class;

float dist;

}

star;

star.class = B;

star.dist = 3E23;


union

{

.

.

.

}


Графика

Detectgraph - Turbo C

Initgraph - Turbo C

Gfx _ init - DJ6PP

Getmax x

Getmax y

  1. MS DOS <= 1M
  2. Графический интерфейс GUI - graphics user interface (UNIX - X Window.МЛС)