862 просмотра
От 27 января

Потоки, процессы, конкурентность и прочие понятия из мира ОС

1

Что такое многозадачность (multitasking)?

Многозадачность (multitasking) — свойство операционной системы или среды выполнения обеспечивать возможность параллельной (или псевдопараллельной)) обработки нескольких задач. Истинная многозадачность операционной системы возможна только в распределённых вычислительных системах. Существует 2 типа многозадачности: - Процессная многозадачность (основанная на процессах — одновременно выполняющихся программах). Здесь программа — наименьший элемент управляемого кода, которым может управлять планировщик операционной системы. Более известна большинству пользователей (работа в текстовом редакторе и прослушивание музыки). - Поточная многозадачность (основанная на потоках). Наименьший элемент управляемого кода — поток (одна программа может выполнять 2 и более задачи одновременно).

2

Что такое процесс (process)?

Процесс — экземпляр программы во время выполнения, независимый объект, которому выделены системные ресурсы (например, процессорное время и память). Каждый процесс выполняется в отдельном адресном пространстве: один процесс не может получить доступ к переменным и структурам данных другого. Если процесс хочет получить доступ к чужим ресурсам, необходимо использовать межпроцессное взаимодействие. Это могут быть конвейеры, файлы, каналы связи между компьютерами и многое другое.

3

Что такое поток (thread)?

Поток использует то же самое пространства стека, что и процесс, а множество потоков совместно используют данные своих состояний. Как правило, каждый поток может работать (читать и писать) с одной и той же областью памяти, в отличие от процессов, которые не могут просто так получить доступ к памяти другого процесса. У каждого потока есть собственные регистры и собственный стек, но другие потоки могут их использовать. В Linux (в ядре) понятие «threads» отсутствует. С точки зрения ядра все потоки — это полноценные, отдельные, процессы (просто с общим адресным пространством)

4

Что такое конкурентность (concurrency)?

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

5

Что такое параллельное исполнение?

Параллельное исполнение (parallel computing) подразумевает наличие более одного вычислительного устройства (например, процессора), которые будут одновременно выполнять несколько задач. Параллельное исполнение - это строгое подмножество конкурентного исполнения.

Логотип ДевстанцииАвторизуйтесь, чтобы просматривать следующий контент
7

Что такое многопоточность (multithreading)?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
8

Что такое асинхронное исполнение?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
9

Что такое CPU-bound и IO-Bound операции?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
10

Что такое состояние гонки (race condition)?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
11

Что такое совместная или кооперативная многозадачность?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
12

Что такое вытесняющая (приоритетная) многозадачность?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
13

Что такое системный вызов (system call)?

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
Хотите стать частью сообщества Девстанции?
Вступайте в наш чат в Telegram

Также в этой категории

Вопросник
  11 вопросов

Вопросы про HTTP, SSL, WebSocket и прочее

Вопросы для собеседования бэкенд-разработчика

1148 просмотров
От 12 октября 2023
Вопросник
  13 вопросов

Общие принципы и понятия ООП

Вопросы для собеседования по теме ООП

908 просмотров
От 7 октября 2023
Вопросник
  28 вопросов

Паттерны проектирования с примерами

Раскрытие на примерах почти всех паттернов проектирования

1068 просмотров
От 7 октября 2023
Вопросник
  15 вопросов

Вопросы с собеседований по DDD

Ответы на вопросы про Domain-Driven Design

1104 просмотра
От 4 июня

Вам может быть интересно

Вопросник
  11 вопросов

Теория шардинга баз данных

О распределении данных между серверами

982 просмотра
От 10 октября 2023
Вопросник
  7 вопросов

Коллекция полезных команд для Docker

Большая шпаргалка по всем командам Docker

1021 просмотр
От 12 октября 2023
Вопросник
  60 вопросов

Топ 60 вопросов про базы данных и SQL

Ответы на вопросы с собеседований по БД и SQL

1713 просмотров
От 4 июня
Вопросник
  10 вопросов

Всё о репликации баз данных

Описание понятий и процессов репликации БД

1097 просмотров
От 8 октября 2023

Топ тредов

Gravatar for 1623bbush
bbush
: Задача в JavaScript "Числовая спираль"

Последнее сообщение:
Gravatar for 1773kartan
Kartan
: В матрице размером 4x3 не может быть числа 13, максимальное количество цифр - 12. В тесте ошибка
2 сообщения
38 просмотров

Gravatar for 1847arsen
Arsen
: Задача в Python под названием "Кратчайший путь в матрице"

Последнее сообщение:
Gravatar for 1847arsen
Arsen
: Ошибка на 3 тесте # Ожидаемый результат: 2 а должен быть 1
1 сообщение
67 просмотров

Gravatar for 1233freddypopa
freddypopa
: Добавить чекбокс, который отвечает за показ ранее тронутых задач (черновик)

Последнее сообщение:
: Отличная идея! Возьмём её на заметку!
1 сообщение
166 просмотров

Все категории