Основными характеристиками операционных систем являются:
разрядность ( для ПЭВМ 8-разрядные, 16-разрядные, 32-разрядные, 64-разрядные ОС);
число программ, одновременно выполняемых под управлением ОС (одно - и многозадачные ОС).
Многозадачные ОС поддерживают параллельное выполнение нескольких программ, работающих в рамках одной вычислительной системы, в один момент времени. Многозадачность бывает корпоративная и вытесняющая.
При наличии корпоративной многозадачности приложения совместно используют процессор, периодически передавая его друг другу. Если какое-то приложение откажется освободить процессор, система ничего не сможет с этим поделать.
Если используется вытесняющая многозадачность, то операционная система полностью контролирует все приложения и распределяет между ними процессорное время, тем самым сильно понижая вероятность "зависания" системы при ошибках в работе программ.
Однозадачные ОС поддерживают режим выполнения только одной программы в отдельный момент времени;
многопоточность - это технология, позволяющая приложением должным образом осуществлять многозадачное выполнение своих процессов. Процесс - любая задача или деятельность, инициируемая рограммой. Одна программа может выполнять несколько процессов одновременно;
тип пользовательского интерфейса: интерфейс командной строки, текстовый оконный интерфейс, графический оконный интерфейс пользователя (ИКС, ТИП, ГИП);
требование к аппаратным ресурсам;
производительность;
надежность (устойчивость в работе, защищенность данных от несанкционированного доступа );
обеспеченность прикладными программами;
наличие сетевых возможностей ( сетевые, локальные ОС);
Сетевые ОС предназначены для управления ресурсами компьютеров, объединенных в сеть с целью совместного использования данных, и предоставляют мощные средства разграничения доступа к данным при обеспечении их целостности и сохранности, а также множество сервисных возможностей по использованию сетевых ресурсов;
количество поддерживаемых процессоров: однопроцессорные, многопроцессорные;
Многопроцессорные ОС, в отличие от однопроцессорных, поддерживают использовани нескольких процессоров для решения одной задачи;
открытость операционной системы, заключается в том, что компоненты ОС доступны в исходных кодах для любого пользователя.
использования оперативной памяти;
Различают два работы с памятью: линейный адресный - ОС работает со всей системной памятью, как с единым непрерывным пространством; сегментарный - ОС работает с небольшим объёмом доступной без специальных средств оперативной памяти.
#include <iostream>
double multiply(double num1, double num2) {
if (num2 > 0) return num1 + multiply(num1, num2 - 1);
else if (num2 < 0) return -num1 + multiply(num1, num2 + 1);
return 0;
}
signed main() {
//2.2 * 2
std::cout << multiply(2.2, 2) << std::endl;
//4 * 2
std::cout << multiply(4, 2) << std::endl;
//-8 * 2
std::cout << multiply(-8, 2) << std::endl;
//0*1
std::cout << multiply(0, 1) << std::endl;
return 0;
}