# Лабораторная работа 0. Подготовка окружения **Время на работу:** 1 пара. **Оценка:** зачёт/не зачёт. ## Цель работы Подготовить рабочее окружение и убедиться, что все механизмы параллельного программирования доступны на вашей машине — до того, как вы начнёте основную лабораторную. ## Теория (минимум) ### Виртуальное окружение (venv) Виртуальное окружение — изолированная папка с собственной копией Python и своим набором библиотек. Оно нужно, чтобы зависимости курса не конфликтовали с другими проектами. Активированное окружение видно в терминале по префиксу `(.venv)`. ### Почему не Google Colab / онлайн-интерпретаторы Параллельность — это про реальные ядра CPU и реальную ОС. В облаке вы не получите ни честного числа ядер, ни контроля над фоновыми процессами, ни Windows-специфики `spawn`. Работаем локально. ### Модель памяти Python: всё передаётся по ссылке В Python переменные — ссылки на объекты. Для потоков это значит: **все потоки одного процесса видят одни и те же объекты** — отсюда гонки данных (лаба 5). Для процессов это значит: **каждый процесс получает свою копию данных** (через pickle) — отсюда накладные расходы (лаба 4). ## Задание ### Шаг 1. Установите Python 3.10+ Windows: python.org → Downloads → «Windows installer (64-bit)». **Обязательно** отметьте «Add python.exe to PATH» на первом экране установщика. Проверка (новое окно терминала): ```bat python --version ``` ### Шаг 2. VS Code Установите VS Code и расширение **Python** (издатель Microsoft). Откройте папку курса: File → Open Folder. Терминал: Terminal → New Terminal (или `` Ctrl+` ``). ### Шаг 3. Виртуальное окружение и зависимости В терминале VS Code **из корня курса**: ```bat python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt ``` macOS/Linux: `source .venv/bin/activate`. Если VS Code спросит интерпретатор — выберите `.\.venv\Scripts\python.exe`. ### Шаг 4. Git (кратко, если ещё не знакомы) ```bat git init git add . git commit -m "lab 0: окружение готово" ``` Дальше фиксируйте прогресс коммитами — это история вашей работы (и аргумент в спорах о списывании). ### Шаг 5. Проверка окружения ```bat python lab00_intro\check_env.py ``` Скрипт проверит версию Python, наличие библиотек, число ядер CPU и работоспособность потоков, процессов и asyncio. Все проверки должны быть `[OK]`. ### Шаг 6. Свой вариант ```python from common.tasks import get_variant print(get_variant(<ваш номер в журнале>)) ``` Запишите параметры — они понадобятся во всех следующих лабораторных. ## Контрольные вопросы 1. Зачем нужно виртуальное окружение? Что произойдёт, если его не создавать? 2. Чем процесс отличается от потока? (Подсказка: общая память.) 3. Почему для этого курса важна работа на локальной машине, а не в облаке? ## Что сдаётся - Скриншот вывода `check_env.py` (все проверки `[OK]`); - короткий ответ на контрольные вопросы (можно в чате при сдаче). ## Критерии зачёта | Пункт | Баллы | |---|---| | Окружение развёрнуто, check_env.py всё `[OK]` | 1 | | Ответы на контрольные вопросы | 1 |