Semaphores

Semaphore (programming)

A semaphore is a variable or data type used in computer science to control access to a shared resource by multiple threads, preventing critical section problems in concurrent systems. It acts as a record of available units of a resource and allows for safe adjustment of that record as units are acquired or become free. Semaphores can be used to prevent race conditions, but their use does not guarantee the absence of these issues. They were invented by Edsger Dijkstra in the 1960s while developing an operating system.

3 courses cover this concept

CS 110: Principles of Computer Systems

Stanford University

Winter 2022

CS 110 delves into advanced computer systems and program construction, focusing on designing large systems, software that spans multiple machines, and parallel computing. This course builds upon CS107 and requires good knowledge of C, C++, Unix, GDB, Valgrind, and Make. It covers Linux filesystems, multiprocessing, threading, networking, and more.

No concepts data

+ 28 more concepts

CS 110: Principles of Computer Systems

Stanford University

Summer 2021

Requiring familiarity with C/C++ and Unix/Linux, delves into computer systems principles. Students will engage with a blend of C and C++ to interface with system resources and manage complex projects. The course covers a broad range of topics including filesystems, multiprocessing, synchronization, networking, and MapReduce.

No concepts data

+ 24 more concepts

CS 162: Operating Systems and Systems Programming

UC Berkeley

Fall 2022

This course introduces operating systems design and related concepts. It covers topics like memory allocation, file systems, basic networking, transactions, and security. The course requires foundational knowledge in data structures, assembly language, C programming, and debugging. It aims to improve students' skills in debugging large programs and computational problem solving.

No concepts data

+ 49 more concepts