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

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

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 и прочее

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1275 просмотров
От 8 октября 2023
Вопросник
  11 вопросов

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

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

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

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

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

1142 просмотра
От 12 октября 2023

Топ тредов

Gravatar for 1773kartan
Kartan
: Задача в JavaScript "Поиск пары чисел по сумме"

Последнее сообщение:
: Исправлено!
3 сообщения
36 просмотров

: Задача в JavaScript "Форматирование текста"

Последнее сообщение:
: Но тогда другой кейс уже противоречит подходу. Вызов: formatText("Мама пошла в магазин", 4) Ожидалос...
3 сообщения
52 просмотра

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

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

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