Концепции операционной системы-2

Suggested by: Coursera (What is Coursera?)

Professional Certificate

No prior knowledge required

Time to complete the course

7-day free trial

No unnecessary risks

Skills you will acquire in the course

What you will learn in the course

Courses for which the course is suitable

Вы хотите успешно сдать конкурсные экзамены по программированию, собеседования при приеме на работу или сдать экзамены по операционным системам? Тогда вы попали в нужное место, потому что этот всеобъемлющий курс по многопоточности и концепциям операционных систем поможет вам. Знаете ли вы, что однопоточный процесс может выполняться только на одном ядре, даже если машина имеет восемь ядер? Многопоточный процесс может использовать истинный аппаратный параллелизм для повышения производительности программы. В этом курсе вы узнаете, как реализовывать корректные многопоточные программы без гонки данных и использовать блокировки и семафоры для реализации правильных решений синхронизации. Вот некоторые из интригующих вопросов, на которые вы узнаете ответы в этом курсе: — Что такое гонки данных? — Что такое синхронизация процессов? — Как реализовать корректные многопоточные программы без гонки за данными? — Что такое замки и семафоры? — Каковы необходимые условия для тупиковых ситуаций? — Как операционные системы справляются с взаимоблокировками? — Как операционные системы реализуют потоки? — Как в операционных системах реализуются блокировки для обеспечения корректного взаимного исключения и синхронизации? В этом курсе мы рассмотрим все эти темы очень подробно. Вы узнаете, почему использование потоков в программах может повысить производительность программы и каковы издержки, связанные с использованием процессов. Вы также узнаете о ключевой идее потоков, разнице между однопоточными и многопоточными процессами, преимуществах использования потоков и многом другом. Мы также углубимся в Pthreads и узнаем, как создать поток с помощью Pthread, как передавать параметры в поток, как использовать Pthread self, Pthread равно и как завершить поток. Вы также узнаете, как использовать Pthread join для ожидания завершения потока, как возвращать значения из функций thread и как ожидать потоков. Курс также будет охватывать глобальные переменные в потоках, параллелизм в программах, условия гонки и атомарные операции, синхронизацию и свойства корректности для решений синхронизации. Вы также узнаете, как применять взаимное исключение, что такое блокировки и как использовать блокировки в Pthreads. Мы также рассмотрим семафоры и шаблоны синхронизации, ограниченный одновременный доступ, сигнализацию и то, как использовать семафоры, чтобы избежать загруженного ожидания. Вы также узнаете о проблемах многоядерного программирования и проектирования многопоточных программ. Мы также рассмотрим пулы потоков, проблему читателей и писателей и способы решения проблемы читателей и писателей. Мы также затронем проблему философов питания и способы ее решения. В курсе также будут рассмотрены четыре необходимых условия для взаимоблокировок, способы предотвращения взаимоблокировок, что такое граф распределения ресурсов и как обрабатывать взаимоблокировки. Вы также узнаете, как реализовывать потоки, что такое пользовательские потоки и потоки ядра, как реализуются потоки в Linux и как реализуются блокировки. Вы также узнаете об атомной инструкции Test And Set, спин-блокировках и о том, как блокировки влияют на производительность. Udemy предлагает 30-дневную гарантию возврата денег, и если вы заинтересованы в прохождении одного из наших курсов, но не можете его приобрести, вы можете подать заявку на стипендию для зачисления.

Итак, чего же вы ждете? Запишитесь на этот курс, чтобы овладеть искусством многопоточности и концепций операционной системы!

Details of the courses that make up the specialization