Книга название которой обозначает выполнение пассивных инструкций компьютерной программой


1


Лекция 2 Управление задачами Процессы и потоки


2


Процесс Выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие. Компьютерная программа сама по себе это только пассивная совокупность инструкций, в то время как процесс это непосредственное выполнение этих инструкций. Часто процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т. д.


3


Контекст процесса Адресное пространство Содержимое аппаратных регистров Структуры данных ядра Адресное пространство – список адресов в памяти от некоторого минимума (обычно ноль) до некоторого максимума, которые процесс может прочесть и в которые может писать. Содержит саму программу, данные к ней и ее стек. (core image)


4


Регистровый контент Счетчика команд, указывающего адрес следующей команды, которую будет вы- полнять центральный процессор; этот адрес является виртуальным адресом внутри пространства ядра или пространства задачи. Регистра состояния процессора (PS), который указывает аппаратный статус машины по отношению к процессу. Регистр PS, например, обычно содержит подполя, которые указывают, является ли результат последних вычислений нулевым, положительным или отрицательным, переполнен ли регистр с установкой бита переноса и т.д. Операции, влияющие на установку регистра PS, выполняются для отдельного процесса, потому-то в регистре PS и содержится аппаратный статус машины по отношению к процессу. В других имеющих важное значение подполях регистра PS указывается текущий уровень прерывания процессора, а также текущий и предыдущий режимы выполнения процесса (режим ядра/задачи). По значению подполя текущего режима выполнения процесса устанавливается, может ли процесс выполнять привилегированные команды и обращаться к адресному пространству ядра. Указателя вершины стека, в котором содержится адрес следующего элемента стека ядра или стека задачи, в соответствии с режимом выполнения процесса. В зависимости от архитектуры машины указатель вершины стека показывает на следующий свободный элемент стека или на последний используемый элемент. От архитектуры машины также зависит направление увеличения стека (к старшим или младшим адресам). Регистров общего назначения, в которых содержится информация, сгенериро- ванная процессом во время его выполнения. Взаимодествие процесс-ядро.


5


Системный контекст Запись в таблице процессов, описывающая состояние процесса и содержащая различную управляющую информацию, к которой ядро всегда может обратиться. Часть адресного пространства задачи, выделенная процессу, где хранится управляющая информация о процессе, доступная только в контексте процесса. Общие управляющие параметры, такие как приоритет процесса, хранятся в таблице процессов, поскольку обращение к ним должно производиться за пределами контекста процесса. Записи частной таблицы областей процесса, общие таблицы областей и таблицы страниц, необходимые для преобразования виртуальных адресов в физические. + В задачи управления памятью входит идентификация участков виртуального адресного пространства процесса, не являющихся резидентными в памяти. Стек ядра, в котором хранятся записи процедур ядра, если процесс выполняется в режиме ядра. Несмотря на то, что все процессы пользуются одними и теми же программами ядра, каждый из них имеет свою собственную копию стека ядра для хранения индивидуальных обращений к функциям ядра. Ядро должно иметь возможность восстанавливать содержимое стека ядра и положение указателя вершины стека для того, чтобы возобновлять выполнение процесса в режиме ядра. В различных системах стек ядра часто располагается в пространстве процесса, однако этот стек является логически-независимым и, таким образом, может помещаться в самостоятельной области памяти. + Динамическая часть системного контекста процесса, состоящая из несколь ких уровней и имеющая вид стека, который освобождается от элементов в порядке, обратном порядку их поступления. На каждом уровне системного контекста содержится информация, необходимая для восстановления предыдущего уровня и включающая в себя регистровый контекст предыдущего уровня.. Если несколько процессов совместно используют общие области, эти области входят составной частью в контекст каждого процесса, поскольку каждый процесс работает с этими областями независимо от других процессов. Когда процесс выполняется в режиме задачи, соответствующий ему стек ядра пуст.


6


Таблица процессов Управление процессомУправление памятьюУправление файлами Регистры Счетчик команд Указатель стека Состояние процесса Приоритет Параметры планирования Идентификатор процесса Родительский процесс Группа процесса Время начала процесса Использованное процессорное время Указатель на текстовый сегмент Указатель на сегмент данных Указатель на сегмент стека Корневой каталог Рабочий каталог Дескрипторы файла Идентификатор пользователя Идентификатор группы


7


Модель процесса Один счетчик команд A B C D 4 счетчика команд ABCD A B C D время В каждый момент времени активен только 1 процесс


8


Состояния процесса 1. процесс блокируется ожидая ввода данных 2. планировщик выбирает другой процесс 3. планировщик выбирает этот процесс 4. доступны входные данные Блокировка Действие Готовность Работающий (в этот конкретный момент использующий процессор) 2.Готовый к работе (приостановлен что бы позволить работать другому процессу) 3.Заблокирован (ждет внешнего события)


9


Иерархия процессов UnixWindows Все процессы связаны Один «родитель» и сколько угодно «детей» Единое дерево во главе — init Не существует иерархии Все процессы равноправны Родительский процесс имеет дескриптор, позволяющий контролировать дочерний процесс. (Дескриптор можно передать другому процессу)


10


Пример иерархии Unix initbashls -lagrepsendmailpopsmtp ls –ls | grep doc


11


Потоки (thread, нити) Существуют только «внутри» процесса Служат для выполнения программ в одной концепции процесса


12


Потоки Ядро поток Процесс 3Процесс 1Процесс 2 Ядро поток Процесс 1 Простр анство пользо вателя


13


Таблица потока Элемент процессаЭлемент потока 1.Адресное пространство 2.Глобальные переменные 3.Открытые файлы 4.Дочерние процессы 5.Необработанные аварийные сигналы 6.Сигналы и их обработчики 7.Информация об использовании ресурсов 1.Счетчик команд 2.Регистры 3.Стек 4.Состояние


14


Реализация потоков


15


Примеры Редактирование документов Веб сервер — кеширование


16


Вопрос 2 Назовите понятие: «Заходя в ванную, Анна забыла взять с собой халат. Обычно она может выйти в комнату и в неодетом виде, но, пока она была в ванной, в гости зашёл Антон, которому Анна должна отдать флэшку, которая лежит у неё в сумочке. Сам Антон в сумочку лезть отказывается, и требует, чтобы флэшку отдала ему Анна. Без флэшки он не уйдёт. Анна не может выйти в комнату пока там Антон. Антон ждёт, пока ему отдадут флешку, Анна ждёт ухода Антона, после которого она может выйти и отдать флешку.»

16.
Понятия процесса и потока. Состояния
процесса

Проце́сс
— выполнение пассивных инструкций
компьютерной программы на процессоре
ЭВМ.

Компьютерная
программа сама по себе это только
пассивная совокупность инструкций, в
то время как процесс — это непосредственное
выполнение этих инструкций.

Часто
процессом называют выполняющуюся
программу и все её элементы: адресное
пространство, глобальные переменные,
регистры, стек, открытые файлы и т. д.

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

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

Основные
способы реализации пакета потоков: в
пространстве пользователя и в ядре. В
первом случае ядро ничего не знает о
потоках и управляет обычными однопоточными
процессами.» +»: это можно реализовать
даже в ОС, не поддерживающей потоки
(раньше так строились все ОС); относительно
высокая производительность; возможность
использовать процессом собственный
алгоритм планирования.» –»: проблема
добровольной отдачи процессора одним
из потоков, или блокирование одного
потока, что приводит к блокированию
всего процесса. В большинстве известных
ОС сегодня потоки реализуются в ядре
или используется сочетание двух способов

Возможные
состояния процесса:


действие (использует процессор в данный
момент)


готовность (приостановлен, чтобы
позволить выполняться другому процессу)


блокировка (не может быть запущен прежде,
чем произойдет некое внешнее событие)

Переходы
между состояниями:

1:
процесс блокируется, ожидая входных
данных

2:
планировщик выбирает другой процесс

3:
планировщик выбирает этот процесс

4:
доступны входные данные

Книга: Понятие вычислительного процесса

Процесс — выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие.

Компьютерная программа сама по себе это только пассивная совокупность инструкций, в то время как процесс — это непосредственное выполнение этих инструкций.

Часто процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т. д.

Вычислительный процесс – смена состояний вычислительной системы во времени, задаваемом программой.

Управление вычислительной системой может быть либо фиксированной, либо ориентироваться на поток входящих данных, либо на поток входящих команд.

Производители, как правило, ориентируют выпуск вычислительной техники на управление от потока команд и существуют 2 технологии: CISC и RISC.

CISC (англ. Complex Instruction Set Computing) — концепция проектирования процессоров, которая характеризуется следующим набором свойств:

· Нефиксированным значением длины команды.

· Арифметические действия кодируются в одной инструкции.

· Небольшим числом регистров, каждый из которых выполняет строго определённую функцию.

Типичными представителями являются процессоры на основе x86 команд (исключая современные Intel Pentium 4, Pentium D, Core, AMD Athlon, Phenom, которые являются гибридными) и процессоры Motorola MC680x0.

RISC (англ. Reduced Instruction Set Computer) — вычисления с сокращённым набором команд.

Это концепция проектирования процессоров (ЦПУ), которая во главу ставит следующий принцип: более компактные и простые инструкции выполняются быстрее.

Главным правилом любого производителя должно быть следующее: для любого набора оборудования существует набор программ, которые будут обслуживаться этим набором с приемлемой скоростью.

Тема 2. Урок 17

Практическое занятие: Настройка параметров ОС

Управление процессами с помощью команд операционной системы для работы с процессами

Цель: освоить методы управления процессами в операционной системе Windows.

Теоретические сведения:

Процесс – выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ;

tasklist и taskkill – это команды просмотра и управления процессами. Команда tasklist служит для получения списка идентификаторов запущенных процессов. Команда taskkill позволяет завершать работу процессов на локальном или удаленном компьютере с помощью командной строки;

tasklist /SVC – этот параметр позволяет увидеть служебную информацию каждого процесса;

tasklist/m – эта команда отображает модули, связанные с каждым процессом, что позволяет рассмотреть все библиотеки, используемые процессом;

tasklist/v – это команда, с помощью которой отображается очень подробная информация о процессах;

taskkill /pid <процесс> /pid<процесс> /pid <процесса> /t– этот код завершает тот процесс, чей pid введен;

/pid – это код процесса, он указывает код процесса, который необходимо завершить;

regedit – это команда, с помощью которой происходит запуск редактора реестра.

Задание 1

1) Запустите несколько программ на компьютере.

2) Просмотрите количество запущенных программ в операционной системе Windows, используя программу «Диспетчер Задач», нажав комбинацию клавиш Ctrl + Shift + Esc.

3) Просмотрите, сколько запущено процессов, а также насколько загружен процессор и задействовано ОЗУ, нажав на вкладку «Быстродействие».

Задание 2

1) Запустите интерпретатор Командной строки, нажав комбинацию клавиш Win+ R.

2) В командной строке наберите команду tasklist и нажмите Enter. Отобразится список приложений и связанные с ними задачи/процессы, которые в данный момент используются.

3) Для вывода списка активных служб в каждом процессе введите команду tasklist /SVC.

4) Запустите Калькулятор.

5) Просмотрите командой tasklist появился ли процесс calc.exe

6) Запустите Редактор реестра с помощью команды regedit. Посмотрите командой tasklist появился ли процесс regedit.exe.

Задание 3

1) Запустите ещё два Калькулятора. Выполните в каждом расчёты.

2) Просмотрите командой tasklist появились ли все три процесса calc.exe.

3) Отобразите все задачи, которые загрузили модули командой tasklist/m.

4) Отобразите подробную информацию командой tasklist/v.

5) Завершите три процесса calc.exe. Для этого введите команду taskkill /pid 948 /pid 236 /pid 1256 /t.

6) Убедитесь командой tasklist, что три процесса calc.exe были завершены.

Контрольные вопросы

1. Что собой представляет процесс в операционной системе?

2. Назовите команды просмотра и управления процессами.

3. Какая команда служит для получения списка идентификаторов запущенных процессов?

4. Какая команда позволяет завершать работу процессов на локальном или удаленном компьютере с помощью командной строки.

5. Какой параметр позволяет увидеть служебную информацию каждого процесса?

6. Как выглядит код процесса, который необходимо завершить?

7. Как выглядит команда, с помощью которой происходит запуск редактора реестра.

У этого термина существуют и другие значения, см. Процесс.

Статусы процессов в современных ОС.

Проце́сс — выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие.

Компьютерная программа сама по себе это только пассивная совокупность инструкций, в то время как процесс — это непосредственное выполнение этих инструкций.

Часто процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т. д.

Создание процесса

Простейшей операционной системе (например, внутри холодильника или магазина для продажи газированной воды) не требуется создание новых процессов, поскольку внутри них работает одна-единственная программа, запускаемая во время включения устройства. В более сложных системах надо создавать новые процессы. Обычно они создаются:

  1. При запуске ОС,
  2. При появлении запроса на создание процесса — происходит в случае, если работающий процесс создает новый процесс.

Завершение процесса

Минимум 2 этапа завершения:

  1. Процесс удаляется из всех очередей планирования, т.е. ОС больше не планирует выделение каких-либо ресурсов процессу
  2. Сбор статистики о потреблённых процессом ресурсах с последующим удалением его из памяти

Причины завершения процесса:

  1. Обычный выход
  2. Выход по исключению или ошибке
  3. Недостаточный объем памяти
  4. Превышение лимита отведённого программе времени
  5. Выход за пределы отведённой области памяти
  6. Неверная команда (данные интерпретируются как команды)
  7. Ошибка защиты
  8. Завершение родительского процесса
  9. Ошибка ввода/вывода
  10. Вмешательство оператора

Литература

  • Э. Таненбаум, А. Вудхалл. «Операционные системы: Разработка и реализация.» — СПб.: 2006. — ISBN 5-469-00148-2
  • Э. Таненбаум. «Современные операционные системы. 2-е изд.» — СПб.: Питер, 2005. — 1038 с.: ил. ISBN 5-318-00299-4
 Просмотр этого шаблона Аспекты операционных систем (история • список)
Ядро

Гибридное • Микро • Модульное • Монолитное • Нано • Экзо • Драйвер • Пространство пользователя • Область пользователя

Управление
процессами

Режимы (супервизора • реальный • защищённый) • Прерывание • Кольца защиты • Переключение контекста • Многозадачность (вытесняющая • кооперативная • мультипрограммирование) • Процесс Управление процессом • Планировщик задач • Многопоточность

Управление
памятью

Защита памяти • Сегментная адресация памяти • Страничная память • Менеджер виртуальной памяти • Ошибка сегментации • Общая ошибка защиты

Прочее

Загрузчик ОС • API • VFS • Компьютерная сеть • GUI • Слой аппаратных абстракций (HAL)

Терминатор, согласователь — поглотитель энергии (обычно резистор) на конце длинной линии, сопротивление которого равно волновому сопротивлению данной линии.

Процесс — выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие.

Компьютерная программа сама по себе это только пассивная совокупность инструкций, в то время как процесс — это непосредственное выполнение этих инструкций.

Часто процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т. д.

Данные — поддающееся многократной интерпретации представление информации в формализованном виде, пригодном для передачи, связи, или обработки. Для долговременного хранения данных обычно используются базы данных.

Сетевая папка — в информатике, это устройство или часть информации, к которой может быть осуществлён удалённый доступ с другого компьютера, обычно через локальную компьютерную сеть или посредством корпоративного интернета, как если бы ресурс находился на локальной машине.

Все, что смогла найти и понять…Извини(((


Подборка по базе: Метрология вопросы.doc, Ответы на вопросы.docx, 10002114_Сидорова Д_ Контрольные вопросы 2.docx, Контрольные вопросы 2.docx, Контрольные вопросы к лекции №10.docx, Вариант 7 ЕГЭ 2023 по обществознанию от Антона Чубукова Вопросы., Теоретические вопросы вариант 6.docx, Форма билета рус основы бу фу 1 2 вопросы.docx, Готовые индивидуальные задания и контрольные вопросы.docx, Тестовые вопросы к разделу 3.docx


Задания 3.

Контрольные вопросы:

  1. Что собой представляет процесс в операционной системе? Обосновать ответ

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

  1. Назовите команды просмотра и управления процессами. Сделать сравнительную характеристику

процесс – выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ; • tasklist и taskkill – это команды просмотра и управления процессами. Команда tasklist служит для получения списка идентификаторов запущенных процессов.

3. Какая команда служит для получения списка идентификаторов запущенных

процессов? Раскрыть суть

Команда TASKLIST используется для получения списка процессов, выполняющихся на локальном или удаленном компьютере в данный момент времени.

4. Какая команда позволяет завершать работу процессов на локальном или

удаленном компьютере с помощью командной строки. Раскрыть суть

Для завершения процессов через командную строку в Windows 7 или Windows 10 нужно использовать команду «taskkill». Данная команда позволяет завершить процесс на локальном или удаленном компьютере по его названию или идентификатору (PID). Для управления процессами в командной строке есть две утилиты — tasklist и taskkill. Первая показывает список процессов на локальном или удаленном компьютере, вторая позволяет их завершить. Попробуем … Если просто набрать команду tasklist в командной строке, то она выдаст список процессов на локальном компьютере.

5. Какой параметр позволяет увидеть служебную информацию каждого

процесса? Обосновать

Команда taskkill позволяет завершать работу процессов на локальном или удаленном компьютере с помощью командной строки; • tasklist /SVC – этот параметр позволяет увидеть служебную информацию каждого процесса; • tasklist/m – эта команда отображает модули, связанные с каждым процессом, что позволяет рассмотреть все

6. Как выглядит код процесса, который необходимо завершить? Раскрыть суть.

Как выглядит код процесса, который необходимо завершить?

7. Как выглядит команда, с помощью которой происходит запуск редактора

реестра. Раскрыть суть

Главная » Видео » Первый программист в мире: кто он, с чего начал путь и какую программу создал

Кто создал первую программу для компьютера

+7 (499) 444-90-36 Отдел заботы о пользователях

Москва, Ленинский проспект, дом 6, строение 20

  • Участник Skolkovo
  • Премии Рунета 2018, 2019, 2020

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies

Августа Ада Лавлейс — имя первой программистки

Почему-то , когда называют слово «программист» , — в этой профессии первым делом представляется мужчина. Однако, вы удивитесь, но первый программист — это женщина. Имя первой программистки — Августа Ада Лавлейс. Она была дочерью известного поэта Гордона Байрона, родилась в Лондоне в 1815-м году. Хотя у нее и знаменитый отец, он не участвовал в ее воспитании. Когда ей было всего 5 недель, мама и знаменитый отец разошлись , и с тех пор они так и не виделись и не общались.

С детства Ада была увлечена математикой, черчением и другими точными науками. Уже к 12-ти годам она разработала и начертила собственный летательный аппарат, который должен был работать на паровом двигателе.

Уже в 1824-м из-за своего увлечения наукой она была представлена математику Чарльзу Бэббиджу на выставке, где он представлял свой аппарат, сконструированный для автоматического расчета логарифмических и тригонометрических функций. Инструкция д ля работы того аппарата вводилась с помощью перфокарты. Сама Ада потом долгое время еще изучала данный аппарат, его назначение и работу. Так она и подружилась с данным математиком, который стал ее ментором в математической науке.

Вычислительный аппарат Бэббиджу так и не имел окончательной реализации из-за технических ограничений того времени и финансовых трудностей самого изобретателя. Но на этом он сам не остановился и решил разработать новый проект — аналитическую машину. Данная аналитическая машина и считается прародителем первого компьютера. Но сам прототип этой аналитической машины был создан уже после смерти его изобретателя.

По это й машине бы л проведе н ряд научных лекций в Турине. Было много опубликованных статей на эту тему. Одну из таких научных статей на французском языке Чарльз попросил перевести Аду на английский язык. Делая перевод , Ада настолько вдохновилась «идеей», что многие факты и алгоритмы комментировала своими мыслями. Так получил о сь, что при переводе за счет комментариев статья увеличилась в 3 раза. При изучении перевода в комментариях было замечено большое количество «плана работы» для аналитической машины, прописанного именно программным алгоритмом. Именно эти комментарии и считаются первым программным обеспечением, созданным специально для компьютера. Сами эти программы не были применены на практике, однако именно Аде присвоен статус «первый программист в мире».

Суть в том, что з ад олго до появления прототипа компьютера, Ада сумела предположить, что будут созданы машины, которые смогут решать задачи , неподвластные человеку. И все это будет возможно простым написанием определенных алгоритмов.

Именно те комментарии Ады легли в основу современного программирования. Именно она ввела такие понятия, как команды, цикл, свойство и т. д. Это намного ускоряло передачу команды при помощи перфокарты.

Сейчас имя первой программистки носит один из языков программирования и два городка в США.

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

Первая компьютерная программа

Ада Байрон

Первую компьютерную программу написала женщина, мать троих детей и аристократка. И написала она ее еще до того, как появился первый в мире компьютер.

Княгиня Лавлейс или Ада А. Байрон-Кинг — дочь великого британского поэта лорда Байрона. Ее отец бросил ее мать еще когда она была маленькой. Мать чрезвычайно радовалась тому, что ее маленькая дочурка сильно увлеклась математикой, хотя были и попытки пойти по стопам отца и писать стихи. Однажды в 12 лет она показала матери исчерканные листки бумаги, на ней юная Ада изобразила чертеж летательного аппарата.

В 17 лет приставленная ко двору, девушка не стала искать себе ухажера, а примкнула к исследователю математику Чарьзу Бэббиджу. Ее так увлекал идея автоматический счетной машинки, которая считалась безумием в то время, что все свои силы тратила на ее проектирование. Бэббиджа вдохновляло то, что Наполеон уже заказывал нечто подобное и его придворным ученным не удалось закончить изобретение из-за развязавшейся войны.

лорд Байрон

Бэббидж придумал название для своей будущей машины и назвал ее «дифференциальной». В 1882 году ученый заинтриговал Адмиралтейство Британии и те стали спонсорами его разработок. Размер машины был огромный, она должна была занимать целую комнату и вычислять с точностью до 10-го знака дроби. За 10 лет ученый построил только один блок своего устройства. Идея аналитической машины захватывала Бэббиджа, он по сути предложил миру схему почти современного компьютера. Центральный процессор он называл мельницей, были перфокарты, программы-инструкции. Машина состояла из множества зубчатых колес и должна была приводиться в действие паром. В 1871 году Чарльз Бэббидж умер и правительство Англии решило, что никто больше не способен изобрести подобную машину и закрыла проект.

Чарльз Бэббидж

Но тем не менее 13 июля 1843 года Ада прислала математику письмо, в нем она изложила алгоритм машинных вычислений чисел Бернулли. Ада считала, что обработка данных машиной вовсе не обязана быть аналитической или арифметической, она считала это заблуждением. Цифры машина понимает так же как и буквы или другие символы. Графиня считала, что в будущем машины смогут писать музыку и даже стихи.

У самой же было развлечение — поиск формулы, которая позволила бы всегда побеждать в тотализаторе на скачках. Ада умерла в возрасте 37 лет, прожила столько же как и ее отец и была похоронена в той же усыпальнице, что и лорд Байрон. В день ее рождения — 10 декабря, во многих странах отмечают День программиста, а в 70-е Пентагон назвал в ее честь язык программирования ADA.

Текст научной работы

Введение

Для того чтобы разобраться в эволюции ПО надо узнать что обозначает слово, которое лежит в основе ПО, а именно слово «Программа».

С греческого языка это слово можно буквально перевести как пред-запись, программа это предварительное описание некоторых предстоящих событий или действий компьютера. Программное Обеспечение (ПО) — программа/ы, которые используются для управления персонального компьютера. В IT сфере ПО часто называют словом «софт» для сокращения и упрощения произношения, а родоначальником данного сокращения является английское слово «software».

Развитие программного обеспечения

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

Если нам надо систематизировать или передать информацию которая у нас есть, мы также используем различные информационные технологии.

Их можно обрисовать в виде Аппаратного и Программного обеспечения.

Аппаратное обеспечение ( hardware — аппаратное обеспечение. включает в себя все физические части компьютера, но не включает информацию (данные) , которые он хранит и обрабатывает, и программное обеспечение, которое им управляет.

Программное обеспечение (англ. soft ware программное обеспечение, сокращенно «ПО») включает в себе компьютерные программы и данные, предназначенные для решения определённого круга задач и хранящиеся на машинных носителях. Программное обеспечение представляет собой либо данные для использования в других программах, либо алгоритм, реализованный в виде последовательности инструкций для процессора.

Первый разработчик ПО

Весь софт создаётся программистами на различных языках программирования, которые предназначены для записи ПО. Самым первым программистом считается Ада Лавлейс, дочь знаменитого поэта, лорда Джорджа Байрона. В 1843 она перевела лекцию британского изобретателя Чарльза Беббиджа о созданной им вычислительной машине которую тот прочитал в университете Турина с итальянского языка на английский, при переводе текста лекции Ада Лавлейс дополнила его своими подробными комментариями, которые по объему в три раза превышали текст лекции.

Один из этих комментариев содержал набор инструкций для вычисления чисел Бернулли в отношении описанной вычислительной машины, этот набор инструкций и считается первой ПО, однако при жизни Ады Лавлейс, описанная вычислительная машина так и не была сконструирована.

Первые компьютеры и их устройство

Вся работа первых ПК определилась состоянием переключателей и реле, так компьютеру задавались и данные для обработки и программа. Однако, так невозможно было задать длинную программу, ведь количество переключателей всегда была ограничена.

Первым программируемым ПК считается Компьютер z3 созданный в 1943 году немецким ученым Конрадом Цузе.

В период с 1943 по 1945 год Конрадом Цузе для его компьютера был разработан и первый язык программирования Plankalkul, однако из-за второй мировой войны он так и не был реализован.

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

Эволюция написания ПО

В 50-х годах потребность в компьютерных программах возросла и они стали значительно длиннее поэтому они получили распространение ПО: сборщики программы, которые были названы ассемблерами.

Они позволили сделать программы понятнее, однако такие программы все еще зависели от центрального процессора ПК.

В 1954 году началась разработка первого языка программирования высокого уровня ”Фортран”, его 1 работающая версия была реализована в 1957 году. Языки программирования высокого уровня стали настоящим прорывом. То как работают ПО практически перестало зависеть от аппаратного обеспечения компьютера, в то же время сами языки программирования стали имитировать естественные разговорные языки. Таким образом коды программ значительно сократились, а запоминать язык программирования стало значительно проще.

Компьютерные программы имели следующие составляющие:

Первая часть — это данные, они могут храниться на компьютере или задаваться пользователем ПО.

Вторая часть — это модель обработки данных, то есть описание способы их обработки.

Третья часть — это пользовательский интерфейс, совокупность правил обмена информацией между пользователем и ПО.

История изменений составляющих компьютерных программ.

Сложность ПО постепенно увеличивалась, в итоге их стало сложно понимать даже самим программистом, поэтому в конце 60-х годов была разработана “парадигма структурного программирования” и её родоначальником стал нидерландский программист Эдсгер Дейстра. В 1968 году он опубликовал свое письмо” Оператор “go-to” “считается вредным. В этом письме он призвал программистов отказаться от использования в программах оператора безусловного перехода. Что же это значит. Программа представляет собой набор инструкций для управления компьютером, эти инструкции обычно выполняются в том порядке в котором они записаны, с помощью оператора безусловного перехода, программист может продолжить исполнение софта с любой инструкции, не обязательно со следующей такие программы было сложно читать.

При отказе от оператора безусловного перехода, инструкции в компьютерных программах стали выполняться всегда последовательно.

Также теперь работу ПО стало возможным описать в виде блок-схемы с одной точки начала и одной точкой окончания и элементами нескольких типов. Еще больше упростило структурное программирование использование процедур и функций.

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

Еще одним шагом в усовершенствовании структурного программирования стало появление структур, теперь простые данные стали образовывать более сложные. Так например из трех чисел которые обозначают количество часов минут и секунд стало возможным образование единой структурой, времени.

Данные в различных структурах нужно обрабатывать по-разному для этого необходимо описывать свои процедуры и функции, так в программировании появилась еще одна парадигма “объектно-ориентированное программирование (ООП)” при таком программирование структуры и функции для их обработки объединены в класс, а программа это набор взаимодействующих объектов принадлежащих к различным классам. Помимо этого ООП реализовала еще целый ряд своих принципов. На месте не стоял и пользовательский интерфейс программ. Если в начале данные задавались через систему переключателей, то после того как компьютер стал доступен большему количеству людей, изменился и способ обмена информацией между программой и пользователем. Так сначала появился текстовый интерфейс, в нем компьютер выводил информацию на экран в текстовой форме, также и пользователь задавал команды компьютеру с клавиатуры в текстовой форме.

Позже на смену текстовому интерфейсу пришел привычный нам графический пользовательский интерфейс, команды компьютеру стали отдаваться с помощью различных элементов управления, например кнопок, полей ввода, ползунков и других. Эти элементы управления активируются с помощью мыши и клавиатуры и обычно достаточно просты и интуитивно понятны. Были сформулированы некоторые требования к пользовательским интерфейсом программ, например такие, как “дружественность”, “дружественным” интерфейсом называется такой пользовательский интерфейс через который пользователь может максимально быстро научиться работать с программой допуская при этом минимальное количество ошибок. Так как сегодня пользователи компьютерных программ это обычные люди, при написании программ обычно учитывается возможность каких-либо ошибок со стороны пользователя.

Так если пользователь задаст программе некорректные данные то она, скорее всего сообщит ему о некорректном вводе данных и предложит проверить их на правильность, а не завершит свое исполнение ошибкой как это обычно бывало раньше. Также сейчас некоторые ПО помимо графического интерфейса могут поддерживать голосовое управление или даже управление через движение пользователя.

Язык для создания программ АДА

Удивительное событие произошло в 1978 году в ходе проведения эксперимента на вычислительной машинке БЭСМ-6. На испытаниях, проходивших в Ирландии (Дублин), программисты закодировали программу Ады на Фортране. В процессе отладки выявили по одной опечатке и ошибке. При этом программа Ады Августы Лавлейс нуждалась в минимальном количестве перфокарт, а также способствовала экономии памяти.

Ада Августа Лавлейс умерла в 36-летнем возрасте и о её работах забыли практически на 130 лет. Однако с началом развития компьютеров, в 1980 году, её имя вновь всплыло и стал использоваться язык программирования на основе её заметок. Более того, в Соединённых Штатах Америки был создан язык программирования АДА, который был назван как раз таки в честь самой первой программистки в мире. При этом день рождения Ады (10 декабря) сегодня называют Днём программистов, и отмечается он во всём мире.

Ада Лавлейс занималась изучением вычислительной машины Чарльза Бэббиджа.

В 1843 году Ада Лавлейс разработала первые программы для аналитической машины вычислительной машины Чарльза Бэббиджа, и заложила теоретические основы программирования. Она впервые ввела понятие «цикл операции». Она высказала главную мысль, что аналитическая машина может решать задачи, которые из-за трудности вычислений практически невозможно решить вручную.

Первая программа включала условную программу управления, изобретенную Баббеджем, повторение циклов операций. Ада написала первый учебник по программированию.

Главная

страница 1страница 2страница 3страница 4страница 5страница 6страница 7

Контекст процесса. Диспетчеризация и переключение контекстов. Роль прерываний и таймера.

8. Понятие потока. Отличия потока от процесса.

Поток – последовательности (потоки выполнения) команд. С возможностью совместного доступа к данным.

9. Процессы в Linux. Системные вызовы для управления процессами.

Процесс — выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие. Процесс — это:


  1. программа на стадии выполнения

  2. «объект», которому выделено процессорное время

  3. асинхронная работа

Для описания состояний процессов используется несколько моделей. Самая простая модель — это модель трех состояний. Модель состоит из:


  1. состояния выполнения

  2. состояния ожидания

  3. состояния готовности

Выполнение — это активное состояние, во время которого процесс обладает всеми необходимыми ему ресурсами. В этом состоянии процесс непосредственно выполняется процессором.

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

Готовность — это тоже пассивное состояние, процесс тоже заблокирован, но в отличие от состояния ожидания, он заблокирован не по внутренним причинам (ведь ожидание ввода данных — это внутренняя, «личная» проблема процесса — он может ведь и не ожидать ввода данных и свободно выполняться — никто ему не мешает), а по внешним, независящим от процесса, причинам.

Из состояния готовности процесс может перейти только в состояние выполнения. В состоянии выполнения может находится только один процесс на один процессор. Если у вас n-процессорная машина, у вас одновременно в состоянии выполнения могут быть n процессов.

Системный вызов (англ. system call) в программировании и вычислительной технике — обращение прикладной программы к ядру операционной системы для выполнения какой-либо операции.

Ядро системы предоставляет возможности (набор системных вызовов) для порождения новых процессов, отслеживания окончания порожденных процессов и т.д.

Системные вызовы для управления процессами в GNU/Linux и UNIX: fork(), exec(), exit(), kill(), _clone() и д.р. Системные вызовы находятся в файле: ./linux/arch/i386/kernel/process.c)

10. Процессы в Linux. Состояния процессов. Процессы зомби.

Процесс — выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие. Процесс — это:


  1. программа на стадии выполнения

  2. «объект», которому выделено процессорное время

  3. асинхронная работа

Для описания состояний процессов используется несколько моделей. Самая простая модель — это модель трех состояний. Модель состоит из:


  1. состояния выполнения

  2. состояния ожидания

  3. состояния готовности

В ОС Linux процесс может находиться в следующих состояниях:


  1. процесс выполняется или готов к выполнению (состояние готовности)

  2. процесс в «беспробудном сне» — ожидает дискового ввода/вывода

  3. процесс остановлен (stopped) или трассируется отладчиком

  4. процесс в состоянии ожидания (sleeping)

  5. процесс-зобми

Процесс-зомби, зомби (англ. zombie process, англ. defunct process) — дочерний процесс в Unix-системе, завершивший своё выполнение, но еще присутствующий в списке процессов операционной системы, чтобы дать родительскому процессу считать код завершения.

Процесс при завершении освобождает все свои ресурсы (за исключением PID — идентификатора процесса) и становится «зомби» — пустой записью в таблице процессов, хранящей код завершения для родительского процесса.

Система уведомляет родительский процесс о завершении дочернего с помощью сигнала SIGCHLD. Предполагается, что после получения SIGCHLD он считает код возврата с помощью системного вызова wait(), после чего запись зомби будет удалена из списка процессов.

Если родительский процесс игнорирует SIGCHLD (а он игнорируется по умолчанию), то зомби остаются до его завершения.

При завершении процесса должна удаляться его структура из списка процессов. Иногда процесс уже завершился, но его имя еще не удалено из списка процессов. В этом случае процесс становится зомби — его уже нет, но мы его видим в таблице команды top. Такое может произойти, если процесс-потомок (дочерний процесс) завершился раньше, чем этого ожидал процесс-родитель.

  1. Синхронное и асинхронное выполнение. Синхронизация. Проблема “гонки”.

Синхронизация (от греч. synchronos — одновременный) в информатике обозначает одно из двух: синхронизацию процессов, либо синхронизацию данных.

Синхронизация процессов — приведение двух или нескольких процессов к такому их протеканию, когда определённые стадии разных процессов совершаются в определённом порядке, либо одновременно.

Синхронизация необходима в любых случаях, когда параллельно протекающим процессам необходимо взаимодействовать. Для её организации используются средства межпроцессного взаимодействия. Среди наиболее часто используемых средств — сигналы и сообщения, семафоры и мьютексы, каналы (англ. pipe), совместно используемая память.

Состоя́ние го́нки (англ. race condition) — ошибка программирования многозадачной системы, при которой работа системы зависит от того, в каком порядке выполняются части кода. Название ошибка получила от похожей ошибки проектирования электронных схем.

Способы решения состояния гонки

Локальная копия

Самый простой способ решения — копирование переменной x в локальную переменную. Естественно, этот способ работает только тогда, когда переменная одна и копирование производится за одну машинную команду.

Синхронизация

Более сложный, но и более универсальный метод решения — синхронизация потоков.

Комбинированный способ

Вышеупомянутые способы можно скомбинировать, копируя «опасные» переменные в синхронизированном блоке. С одной стороны, это снимет ограничение на одну машинную команду, с другой — позволит избавиться от слишком больших синхроблоков.

Очевидных способов выявления и исправления состояний гонки не существует. Лучший способ избавиться от гонок — правильное проектирование многозадачной системы.

<< предыдущая страница   следующая страница >>
Смотрите также:

1. Понятие ос. Задачи ос. 2 Основные этапы развития операционных О

391.83kb.

7 стр.

Основы операционных систем

325.74kb.

1 стр.

Понятие операционной системы; эволюция развития операционных систем; функции операционных систем и подходы к построению операционных систем

813.11kb.

15 стр.

Понятие операционной системы; эволюция развития операционных систем; функции операционных систем и подходы к построению операционных систем

823.67kb.

4 стр.

История создания и основные этапы развития североатлантического союза

232.33kb.

1 стр.

Контрольные вопросы по курсу » Психология развития и возрастная психология» Предмет, задачи, основные проблемы психологии развития и возрастной психологии

42.72kb.

1 стр.

2. Архитектура Древней Греции периода архаики: основные этапы эволюции. Понятие ордера и основные элементы греческой ордерной системы

317.87kb.

1 стр.

Конспект лекции этапы развития естествознания

49.87kb.

1 стр.

Нейропсихология

735.54kb.

8 стр.

Вопросы к экзамену (2005 г.) Генетика как наука. Предмет, проблемы, задачи, методы генетики. Основные этапы развития генетики

40.6kb.

1 стр.

Генезис и этапы развития экономической теории

314.1kb.

1 стр.

Примерный перечень вопросов для подготовки к вступительным испытаниям по дисциплине «Уголовно-исполнительное право» для абитуриентов заочной формы обучения

234.01kb.

1 стр.

Понравилась статья? Поделить с друзьями:
  • Caddx nx 8 инструкция по программированию
  • Калия оротат инструкция по применению спортсменам
  • Стелланин мазь цена инструкция по применению цена в уфе
  • Стелланин мазь цена инструкция по применению цена в уфе
  • Прием корня солодки сироп инструкция по применению взрослым