Операционные системы классифицируются по:
количеству одновременно работающих пользователей: однопользовательские, многопользовательские;числу процессов, одновременно выполняемых под управлением системы: однозадачные, многозадачные;количеству поддерживаемых процессоров: однопроцессорные, многопроцессорные;разрядности кода ОС: 8-разрядные, 16-разрядные, 32-разрядные, 64-разрядные;типу интерфейса: командные (текстовые) и объектно-ориентированные (графические);типу доступа пользователя к ЭВМ: с пакетной обработкой, с разделением времени, реального времени;типу использования ресурсов: сетевые, локальные.В соответствии с первым признаком классификации многопользовательские операционные системы, в отличие от однопользовательских, поддерживают одновременную работу на ЭВМ нескольких пользователей за различными терминалами.
Второй признак предполагает деление ОС на многозадачные и однозадачные. Понятие многозадачности означает поддержку параллельного выполнения нескольких программ, существующих в рамках одной вычислительной системы, в один момент времени. Однозадачные ОС поддерживают режим выполнения только одной программы в отдельный момент времени.
В соответствии с третьим признаком многопроцессорные ОС, в отличие от однопроцессорных, поддерживают режим распределения ресурсов нескольких процессоров для решения той или иной задачи.
Создаёшь массив, заполняешь его, считаешь сумму и произведение, и обрабатываешь условие:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#define RANDOM_MIN -9
#define RANDOM_MAX 9
int main(void) {
srand(time(NULL)); /* for "visible" random */
int N;
scanf("%d", &N);
int *A = malloc(sizeof(int) * N);
int sum = 0;
int prd = 1;
printf("elements: ");
int i;
for (i = 0; i < N; i++) {
A[i] = RANDOM_MIN + rand() % (RANDOM_MAX + abs(RANDOM_MIN) + 1);
printf("%d ", A[i]);
if (A[i] > 0) {
sum += A[i];
} else if (A[i] < 0) {
prd *= A[i];
}
}
printf("\n");
printf("summa: %d\n", sum);
printf("product: %d\n", prd);
if (sum > prd) {
int max = A[0];
for (i = (0 + 1); i < N; i++) {
if (max < A[i]) {
max = A[i];
}
}
printf("max element is: %d", max);
} else {
printf("product higher than summa");
}
getch();
free (A);
return 0;
}