Skip to content
Anton GoncharovAI systems developer

Operating Systems

Harvey Deitel, Paul Deitel, David Choffnes

  • Programming
  • Operating systems

The first volume of the Deitels’ textbook: the hardware and software environment of an OS, processes and threads, asynchronous concurrent execution, mutual exclusion, deadlocks, processor scheduling, real and virtual memory.

Key ideas

  1. A process is the unit the OS allocates resources to; a thread is the unit it schedules.
  2. Any shared resource requires mutual exclusion: semaphores and monitors are ways to guarantee it.
  3. A deadlock arises only when four conditions hold at once, and removing any one of them prevents it.
  4. A scheduling algorithm is always a trade-off between response time, throughput and fairness.

Where and how I applied it

  • Demo · Web app · Laravel · PostgreSQL

    Warehouse system on Laravel

    A race between two real PHP processes for the same stock in PostgreSQL — with a row lock and without: you can see why a shared resource needs mutual exclusion.

  • Demo · Web app · PWA · vanilla JS

    Offline courier app

    If the courier offline and the dispatcher changed the same order, the conflict isn’t settled silently by “last write wins” — the courier chooses which version is right.

More on the shelf

  • Reading

    Hands-On APIs for AI and Data Science

    Ryan Day

    A practical book on building an API for data and connecting AI to it. The running project is a FastAPI service with a database and documentation, then an SDK for it, using the API in analytics and, finally, LangChain agents that call the API themselves.

    AI and agentsPythonAPIApplied in 3 projects
  • Reading

    Server Applications in Python, Django, Flask and FastAPI

    R. S. Bukharev

    The path of server-side development in Python, from sockets and protocols to architecture and launch on a server. Django, Flask and FastAPI are covered through real projects: a CRM system, a Telegram bot with server-side logic, a REST API for a mobile app and a WebSocket chat. Separate chapters cover caching and scaling, Docker and Kubernetes, PostgreSQL, MySQL, SQLite and MongoDB, and security: password hashing, JWT and OAuth 2.0, protection against SQL injection, XSS and CSRF, TLS.

    ProgrammingPythonBackendApplied in 1 project