Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену Операционные Системы 2012.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
456 Кб
Скачать
☆

7. Язык Си-средство разработки ос. Динамическое выделение памяти. Структуры и объединения.

Структура – это тип данных, позволяющий сгруппировать несколько переменных под одним именем. struct [<тег структуры>]{<список деклараций полей>};

Используя typedef при декларации структуры, задают ее новое имя:

typedef struct point {int x; int y;} sp;

Теперь тип sp – синоним типа struct point, и следующие определения эквивалентны:

struct point z; sp z;

Доступ к полям структуры осуществляется с помощью операции «точка»: z.x, z.y, если же определен указатель на структуру p, то используется операция «стрелка» ->. Например:

p=&z;

p->x=2; /* (*p).x – эквивалентно */

Структуры могут быть вложенными. Разрешается присваивать и копировать структуры, но структуры нельзя сравнивать.

Объединение (union) – это тип данных, позволяющий хранить разнородные данные в одной и той же области памяти.

Фактически, объединение – это структура, все поля которой имеют нулевое смещение относительно ее базового адреса, а размер выделяемой области памяти определяется самым большим полем.

Динамические структуры данных

Эл. однонаправленного списка

Эл. двунаправленного списка

Эл. бинарного дерева

struct Node1

{ double data;

struct Node1 *next;};

struct Node2

{ int num;

struct Node2 *next;

struct Node2 *prev;};

struct NodeTree

{char name[10];

struct Node2 *llink;

struct Node2 *rlink;};

Библиотечные функции для динамического выделения и освобождения памяти:

#include <stdlib.h>

void *malloc (size_t size); - Выделяет указанное аргументом size число байтов

void *calloc(size_t nelem, size_t elsize); - выделяет память для указанного аргументом nelem числа объектов, размер которых elsize.

void free(void *ptr); - освобождает ранее выделенную память, указатель на которую передается через аргумент ptr.

8. Принципы построения ОС. Архитектура ОС.

ОС – это комплекс программ, обеспечивающий контроль за существованием, распределением и использованием ресурсов ВС.

Основные принципы построения ОС:

1) модульность

2) особого режима работы

3) виртуализации

4) мобильности (переносимости)

5) совместимости

6) генерируемости

7) открытости (расширяемости)

8) обеспечения безопасности вычислений

Архитектура ос

Ядро – модули, выполняющие основные внутрисистемные функции ОС и постоянно находящиеся в ОП. Эти функции недоступны для приложений. Другой класс функций ядра служит для поддержки приложений, создавая для них прикладную программную среду (API).

Вспомогательные модули – модули, выполняющие вспомогательные функции ОС: утилиты, системные обрабатывающие программы, программы предоставления пользователю дополнительных услуг, библиотеки различного назначения.

см. Лекцию №7 «Основные структуры ОС»

9. Управление процессами. Понятие процесса. Типы процессов. Жизненный цикл процесса.

10. Управление процессами. Понятие процесса. Контекст процесса.

«Программа» - упорядоченная последовательность действий в виде машинных команд.

«Задание» - совокупность программы, набора команд языка управления заданиями, необходимых для ее выполнения, и входных данных.

Процесс (или по-другому, задача) – абстракция, описывающая выполняющуюся программу.

В общем случае процесс можно определить как совокупность данных и машинных команд, исполняющуюся в рамках ВС и обладающую правами на владение некоторым набором ресурсов.

Эти права могут носить эксклюзивный характер, когда ресурс принадлежит только одному процессу, либо ресурс может одновременно принадлежать нескольким процессам – в этом случае ресурс называется разделяемым.

Выводы:

1) все, что выполняется в ВС (даже определенные части ОС), организовано как набор процессов;

2) на однопроцессорной компьютерной системе в каждый момент времени может исполняться только один процесс;

3) во всех современных ВС поддерживается режим мультипрограммирования, при котором на одном процессоре попеременно выполняется сразу несколько программ ( пока один процесс выполняется, остальные ждут своей очереди на получение процессора);

4) в МВС псевдопараллельная обработка нескольких процессоров достигается с помощью переключения процессора с одного процесса на другой.

Для каждого процесса определена структура данных, фиксирующая текущее состояние процесса. Такую структуру называют контекстом процесса. Она существует с момента создания процесса и до момента завершения его работы.