|
SayoriOS
0.3.3
|
Менеджер задач Подробнее...
#include "sys/scheduler.h"#include "lib/string.h"#include "io/ports.h"#include "mem/vmm.h"Функции | |
| void | init_task_manager (void) |
| Инициализация менеджера задач | |
| void | scheduler_mode (bool on) |
| size_t | create_process (void *entry_point, char name[256], bool suspend, bool is_kernel) |
| volatile process_t * | get_current_proc (void) |
| Получить текущий обработчик процесса Подробнее... | |
| __attribute__ ((noreturn)) | |
| thread_t * | _thread_create_unwrapped (process_t *proc, void *entry_point, size_t stack_size, bool kernel, bool suspend) |
| Создание потока Подробнее... | |
| thread_t * | thread_create (process_t *proc, void *entry_point, size_t stack_size, bool kernel, bool suspend) |
| void | thread_suspend (thread_t *thread, bool suspend) |
| Остановить поток Подробнее... | |
| void | thread_exit (thread_t *thread) |
| Завершить текущий поток Подробнее... | |
| bool | is_multitask (void) |
| Получение состояния о мультипотоке Подробнее... | |
| void | task_switch_v2_wrapper (__attribute__((unused)) registers_t regs) |
Переменные | |
| list_t | process_list |
| Список процессов | |
| list_t | thread_list |
| Список потоков | |
| uint32_t | next_pid = 0 |
| Следующий ID задачи (PID) | |
| uint32_t | next_thread_id = 0 |
| Следующий ID потока | |
| bool | multi_task = false |
| Готова ли система к многозадачности | |
| process_t * | kernel_proc = 0 |
| Обработчик процесса ядра | |
| thread_t * | kernel_thread = 0 |
| Обработчик основного потока ядра | |
| process_t * | current_proc = 0 |
| Текущий процесс | |
| thread_t * | current_thread = 0 |
| Текущий поток | |
| uint32_t | init_esp |
| bool | scheduler_working = true |
| physical_addr_t | kernel_page_directory |
Менеджер задач
См. определение в файле scheduler.c
| thread_t* _thread_create_unwrapped | ( | process_t * | proc, |
| void * | entry_point, | ||
| size_t | stack_size, | ||
| bool | kernel, | ||
| bool | suspend | ||
| ) |
Создание потока
| proc | - Процесс |
| entry_point | - Точка входа |
| stack_size | - Размер стека |
| kernel | - Функция ядра? |
| suspend | - Остановлено? |
См. определение в файле scheduler.c строка 147
| volatile process_t* get_current_proc | ( | void | ) |
Получить текущий обработчик процесса
См. определение в файле scheduler.c строка 125
| bool is_multitask | ( | void | ) |
Получение состояния о мультипотоке
См. определение в файле scheduler.c строка 261
| void thread_exit | ( | thread_t * | thread | ) |
| void thread_suspend | ( | thread_t * | thread, |
| bool | suspend | ||
| ) |
Остановить поток
| thread | - Поток |
| suspend | - Вкл/выкл |
См. определение в файле scheduler.c строка 222