Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 689
1

Приоритет в политике планирования

06.01.2021, 21:53. Показов 1610. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание: присвойте процессу высший приоритет в его политике планирования:
Какая политика планирования была у процесса? Какое значение приоритета получил процесс?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int set_highest_priority (pid_t pid)
{ 
struct sched_param sp; 
int policy, max, ret; 
policy = sched_getscheduler (pid); 
if (policy ==1) 
return1; 
 
max = sched_get_priority_max (policy); 
if (max ==1) 
return1; 
 
memset (&sp, 0, sizeof (struct sched_param)); 
sp.sched_priority = max; 
ret = sched_setparam (pid, &sp); 
return ret;
}
Как работает данный программный код? Что должно вывестись не понимаю
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2021, 21:53
Ответы с готовыми решениями:

Вопрос по политике
Привет Всем! ситуация такая я на сервере запустил политику пароля что бы пользоватаели меняли через...

Поиск в Групповой политике
Доброго часа! Скажите, люди добрые, как осуществить поиск в групповой политике? Перекапывать...

Источник данных в групповой политике
А можно как-нибудь создать и назначить источник данных ODBC в Active Directory? P.S. Windows...

Ошибка административных шаблонов в групповой политике AD
Добрый день! При создании новой групповой политики вылетает такая ошибка: В чем может...

3
35 / 27 / 10
Регистрация: 18.10.2020
Сообщений: 76
07.01.2021, 10:00 2
Цитата Сообщение от Катя6 Посмотреть сообщение
Как работает данный программный код?
Так прочитайте описание функций . неужели так трудно ?

Цитата Сообщение от Катя6 Посмотреть сообщение
Что должно вывестись не понимаю
в этом участке кода нет функций вывода , так что ничего не должно выводиться.


Цитата Сообщение от Катя6 Посмотреть сообщение
Какая политика планирования была у процесса?
Вот :
C
1
policy = sched_getscheduler (pid);
Цитата Сообщение от Катя6 Посмотреть сообщение
высший приоритет в его политике планирования:
ОПИСАНИЕ
sched_get_priority_max возвращает максимальное значение приоритета, которое можно использовать
C
1
max = sched_get_priority_max (policy);

Цитата Сообщение от Катя6 Посмотреть сообщение
присвойте процессу высший приоритет
Вот:

C
1
2
3
memset (&sp, 0, sizeof (struct sched_param)); 
sp.sched_priority = max; 
ret = sched_setparam (pid, &sp);
ОПИСАНИЕ
sched_setparam
При удачном завершении вызова возвращаемое значение равно нулю. При ошибке возвращается -1, а переменной errno присваивается номер ошибки.
0
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 689
07.01.2021, 17:21  [ТС] 3
Next999, Какое тогда значение приоритета получил этот процесс?
А как еще назначить этому процессу политику планирования FIFO? Назначить ему высший приоритет и проверить на правильность выполнения? Где-то это вписать просто нужно?
0
35 / 27 / 10
Регистрация: 18.10.2020
Сообщений: 76
07.01.2021, 21:46 4
Цитата Сообщение от Катя6 Посмотреть сообщение
Какое тогда значение приоритета получил этот процесс?
А как еще назначить этому процессу политику планирования FIFO? Назначить ему высший приоритет и проверить на правильность выполнения? Где-то это вписать просто нужно?
все куски кода у вас есть, нужно их соединить воедино И
ЗАПУСТИТЬ ПРОГРАММУ С ПРАВАМИ АДМИНИСТРАТОРА


main.c

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include  <stdio.h>
#include  <string.h>
#include <sched.h>
#include <sys/types.h>
#include <unistd.h>
 
// функция печати политики планирования
void print_policy(int pid)
{
  int policy;
    /* получаем нашу политику планирования*/
    policy = sched_getscheduler (pid);
    switch (policy) {
    case SCHED_OTHER:
        printf ("Обычная политика\n");
        break;
    case SCHED_RR:
        printf ("Политика карусели\n");
        break;
    case SCHED_FIFO:
        printf("Политика FIFO\n");
        break;
    case -1:
        perror ("sched_getscheduler");
        break;
    default:
        fprintf(stderr, "Неизвестная политика!\n");
    }
}
 
// функция установки максимального приоритета
int set_highest_priority (pid_t pid)
{
    struct sched_param sp;
    int policy, max, ret;
 
    policy = sched_getscheduler (pid);  /* получаем нашу политику планирования*/
    if (policy == -1)
        return -1;
 
                                             // по политике
     max = sched_get_priority_max (policy);  // определить максимальный приоритет
     printf("Максимально возможный приоритет:\n  %d\n", max);
    if (max == -1)
        return -1;
 
    memset (&sp, 0, sizeof (struct sched_param));  // обнулить структуру
 
    sp.sched_priority = max;  // установка максимального приоритета
    ret = sched_setparam (pid, &sp);
    if (max == -1)
        return -1;
 
    memset (&sp, 0, sizeof (struct sched_param));  // обнулить структуру
 
    ret = sched_getparam (pid, &sp);  // проверка установленного приоритета
    printf("Приоритет который установлен:\n  %d\n", sp.sched_priority);
 
    return ret;
}
 
int main(void)
{
    pid_t pid = 0; // 0 - текущий процесс
    struct sched_param sp;
    int res = 0;
    printf ("Начальная политика планирования процесса:\n  ");
 
    // вывести на экран начальную политику планирования
   print_policy(pid);
 
 
    memset( &sp, pid, sizeof(sp) );
    sp.sched_priority = 99;
 
    //  Назначить процессу политику планирования
    sched_setscheduler( pid, SCHED_FIFO, &sp );
 
     printf ("Политика планирования процесса после установки:\n  ");
 
    // вывести на экран установленную политику планирования
   print_policy(pid);
 
 
   // установка максимального приоритета
   res  = set_highest_priority (pid);
    printf ("Результат:\n  ");
        if( res   == 0)
        printf ("Максимальный приоритет успешно установлен.\n");
   else
        printf ("Не удалось установить максимальный приоритет.\n");
 
    return 0;
}
Bash
1
2
3
4
5
6
7
8
9
10
11
12
$ gcc main.c
$ sudo ./a.out
Начальная политика планирования процесса:
  Обычная политика
Политика планирования процесса после установки:
  Политика FIFO
Максимально возможный приоритет:
  99
Приоритет который установлен:
  99
Результат:
  Максимальный приоритет успешно установлен.
0
07.01.2021, 21:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2021, 21:46
Помогаю со студенческими работами здесь

Как задать настройки в групповой политике автоматически?
К примеру, есть 100 компьютеров. Необходимо задать им одинаковые настройки групповой политики....

Вопрос о политике ограничения применения программного обеспечения
Господа подскажите пожалуйста - после удаления порнобаннера(вернее и до этого) при попытке открыть...

Приемы и методы пропаганды (в политике, СМИ, рекламе)
СМИ сегодня есть инструмент идеологии, а не информации. Главное в их сообщениях — идеи, внедряемые...

Как изменить два параметра в локальной политике безопасности?
Maximum password age 0 Minimum password length 8 characters

Как отключить выполнение задание в windows 2012r2 в групповой политике
Добрый ночи! Прошу сильно камни не кидать! Подскажите пожалуйста, где находятся файлы планировщика...

Как из VBA добавить доверенный каталог в политике безопасности Access?
Здравствуйте уважаемые Гуру! Собственно sabj. Задача: 1. Есть приложение Access 2010 в формате...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru