- •Лекция №1
- •История операционных систем.
- •Управление памятью.
- •Однозадачные системы.
- •Лекция №2
- •Способы учета участков памяти.
- •2 Алгоритм (наиболее подходящий).
- •3 Алгоритм (наименее подходящий).
- •4 Алгоритм (алгоритм двоичного разбиения).
- •Лекция №4
- •Принципы
- •Лекция №5
- •Лекция №6 Управление процессами.
- •Алгоритмы планирования системы.
- •Лекция №7
- •Два подхода к планированию.
- •Синхронизация.
- •Лекция №8
- •Тупики.
- •Способы взаимодействия между процессами.
- •Лекция №9 Управление процессами в среде Window’s.
- •Лекция №10
- •Волокна
- •Лекция №11 Синхронизация процессов.
- •Ссобытия
- •Способы взаимодействия процессов.
- •Серверная сторона
- •Второй семестр Управление процессами в среде unix Лекция №1
- •Лекция №2
- •Сигналы.
- •Способ взаимодействия общая память.
- •Лекция №3
- •Семафоры.
- •Лекция №4 Файлы как средства сообщения.
- •Файловыe системы.
- •Примеры файловых систем
- •Лекция № 6
- •Система ext 2
- •Лекция № 7
- •Лекция № 8 Функции работы с файлами в unix.
- •Лекция № 9 Java — скрипт.
- •Лекция № 10
- •Лекция № 11
Лекция № 8 Функции работы с файлами в unix.
int open (
const char *fname,
int flags,
mdoe_t mode) // режимы
Флаги:
O_CERATE — создать, если нету.
O_EXCL — используется вместе с O_CREATE — должны только создать, если файл существует — ошибка.
O_TRUNC — обрезать содержимое файла при открытии
O_APPEND — открыть в режиме добавления (прерд каждой записью указатель автоматически устанавливается в конец)
O_PIRECT — не кэшировать
O_LARGEFILE — открыть файл, если он больше 4 Гб.
R — для каталогов — означает: получить список находящихся в нем файлов
W — право добавлять (создавать) или удалять файлы в каталоге
X — право находиться в каталоге (это право влияет на все подкаталоги)
Пример:
/а 0700 — права доступа — 111 000 000
/а/в - 111 111 111
Функция создает файл и возвращает дескриптор открытого файла
int creat(
const char *fname,
mode_t mode)
Ssize_t read (
int fd, //файловый дескриптор
void *buf, //буфер
size_t bytes)
Возвращает знаковый размер, если -1 — ошибка чтения
Ssize_t write (
int fd, //файловый дескриптор
void *buf, //буфер
size_t bytes)
Возвращает абсолютное значение смещения от начала файла
SEEK_SET
SEEK_CUR
SEEK_END
Закрывает файл
int close (int fd)
Лекция № 9 Java — скрипт.
Язык без строгой типизации.
Комментарии
// - однострочный комментарий
/* */ - многострочный комментарий
Присвоение =
Строка «»
true/false логический тип
null пустая ссылка
константы [1,2,3] — массив
[x:1, y: «abc»] — константный объект
function (x) {...} — функция
Объявление переменных:
var <переменная> [ = <значение>];
var a, b=0;
var c= «abc»;
Если переменная объявлена, но не инициализирована, то она хранит значение undefined.
Регистры учитываются.
b + «abc» = «0abc»
var a = 3, b = «2» → a + b = «32»
Типы данных
String, Number, Boolean, Object, Array, Null, Undefind, Function, Error, Data, RegExp
Number может хранить целые и не целые числа. Понимает цифровые константы:
951 — в десятичной форме
0752 — в восьмеричной форме
0хFA14C — в шестнадцатеричной форме
NaN — числовая константа — не число — возникает в случае, когда число получить невозможно (деление на 0 / «а»,...)
Boolean — true / false
Undefined — когда переменная не определена, когда пытаемся получить значение несуществующего свойства.
typeof(<переменная>) - если переменной нет, то вернется строка «undefined»
Операторы и операции.
-, ++, --, *, /, %, +, -, |, . , <, >, <=, >=, =, !=, &&, ||, ?:, , , = = = (сравнение с учетом типа), != =, ~, <<, >>, &, ^
if / else;
while;
do...while;
?::
swich;
for;
for / in (итератор)
for (<переменная> in <коллекция>)
{
...
}
break
continue
return
eval (<строка>)
Масcив
Массив [индекс] => значение
a[1] = 5;
a[«да»] = «abc»;
а[«count»] <=> a.count — правильный идентификатор
a.count = 5;
a[«count»] = = 5 => true
a[s]
[1, 2, 5,7]
a = [x:1, y: «abc»], где x и y — имена индексов
a.x <=> a[«x»]; a.y <=> a[«y»]
a[1] = 1; a[2] = 2; a[4] = 4
for (ind in obj)
{
wscript.echo(obj[ind]);
// вывод на экран всех свойств объектов
a[«s»] = function(x) {return x * x;};
a.s(5) // результат = 25
a.s = function(x) {return x + x;};
a.s(5) // результат = 10
