{ "cells": [ { "cell_type": "markdown", "id": "4020485b", "metadata": {}, "source": [ "# Тест по процессам и потокам #" ] }, { "cell_type": "markdown", "id": "1e130053", "metadata": {}, "source": [ "1. Все процессы работают в ОС\n", "\n", "- [x] последовательно, ОС занимается переключением контекста\n", "- [ ] параллельно, одновременно могут выполняться несколько процессов на одном ядре CPU" ] }, { "cell_type": "markdown", "id": "7952a2d2", "metadata": {}, "source": [ "2. Предположим вывод команды `lsof` для процесса с `pid 1701`:\n", "\n", "```\n", "lsof -p 1701\n", "...\n", "python 1701 user mem REG 8,1 147688 781852 /lib/i386-linux-gnu/ld-2.23.so\n", "python 1701 user 0u CHR 136,9 0t0 12 /dev/pts/9\n", "python 1701 user 1w REG 8,1 0 545637 /home/user/log.txt\n", "python 1701 user 2u CHR 136,9 0t0 12 /dev/pts/9\n", "```\n", "\n", "Стандартный вывод у процесса с `pid 1701` – это\n", "\n", "- [ ] терминал\n", "- [ ] область памяти в библиотеке `ld-2.23.so`\n", "- [x] файл `/home/user/log.txt`\n", "- [ ] отсутствует" ] }, { "cell_type": "markdown", "id": "693d6bbc", "metadata": {}, "source": [ "3. Выделить истинные выражения:\n", "\n", "- [x] выполнением Python потоков в Linux занимается операционная система\n", "- [x] все потоки разделяют память процесса в котором они созданы\n", "- [ ] выполнением Python потоков в Linux занимается процесс, в котором они запущены\n", "- [ ] у каждого потока есть собственная память\n", "- [x] потоки в Python выполняются в рамках одного процесса, разделяя GIL" ] }, { "cell_type": "markdown", "id": "591de8bd", "metadata": {}, "source": [ "4. Какие участки кода в Python могут выполняться без GIL?\n", "\n", "- [x] Вызовы сторонних библиотек на языке C\n", "- [ ] Функции, выполняющиеся в `ThreadPoolExecutor`\n", "- [ ] Функции, занимающиеся вычислениями на CPU\n", "- [x] Системные вызовы" ] }, { "cell_type": "markdown", "id": "43165d4c", "metadata": {}, "source": [ "5. Что происходит с памятью в дочернем процессе?\n", "\n", "- [ ] Разделяется с родительским процессом\n", "- [x] Копируется из родительского процесса" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.8" } }, "nbformat": 4, "nbformat_minor": 5 }