Курс лекций посвящен параллельному программированию на вычислительных системах с разделяемой памятью. Он содержит три главы, первая из которых посвящена операторам распараллеливания, вопросам неделимости операций, устранению взаимного вмешательства процессов, стратегиям планирования и критическим переменным. Во второй главе рассматривается задача о критической секции, активные блокировки, алгоритм разрыва узла, построение барьеров. В третьей главе излагаются вопросы синхронизации с помощью семафоров, рассматриваются решения задач ''об обедающих философах'', ''о читателях и писателях'', методы ''передачи эстафеты'' и ''кратчайшее задание''. Данный курс лекций читается для студентов математико-механического факультета СПбГУ на отделении информатики. Он основан на известных идеях, принципах и моделях параллельного программирования. Ввиду ограниченности курса (курс рассчитан на 36 лекционных часов) основное внимание обращено на принципы параллельного программирования. Авторы курса надеются, что читатели быстро усвоят излагаемые первоначальные сведения по методам параллельного программирования и смогут легко перейти к чтению более солидных книг, перечисленных в списке рекомендуемой литературы