Free online courseOperating Systems and Systems Programming

Duration of the online course: 38 hours and 48 minutes

New course

Master Operating Systems and Systems Programming with this comprehensive online course. Learn about threads, memory management, scheduling, filesystems, and networking.

Course Description

Welcome to "Operating Systems and Systems Programming," an immersive course instructed by . With a total duration of 38 hours and 48 minutes, this course delves into the intricate world of operating systems, offering a comprehensive study that is indispensable for anyone in the field of Information Technology, particularly within the realm of Operational Systems. While there are no reviews yet, the depth and breadth of this course make it a notable addition to your educational journey.

The course begins with an introductory lecture on the fundamental question: "What is an Operating System?" This sets the stage for the entire series, providing a necessary foundation by defining and contextualizing operating systems within modern computing.

Building on this foundation, the second lecture covers the four fundamental concepts of operating systems. This session outlines core principles that underlie all OS functions, ensuring that learners grasp the essential mechanics early on.

The next few lectures introduce critical abstractions including threads and processes, files and I/O, and inter-process communication (IPC) mechanisms like pipes and sockets. These topics are fundamental in understanding how operating systems manage resources and enable software applications to run efficiently.

Concurrency and synchronization are thoroughly examined in multiple lectures, exploring concepts like mutual exclusion, semaphores, atomic instructions, monitors, and reader-writer problems. These sessions are supplemented with additional material to deepen understanding and ensure mastery of these complex topics.

The course also dedicates significant time to scheduling, memory management, and demand paging. From classic scheduling policies and real-time case studies to address translation, virtual memory, caching, and demand paging policies—this section is rigorous and essential for anyone looking to specialize in systems programming.

A comprehensive look at I/O, storage devices, and performance evaluation follows, providing insights into general I/O operations, storage performance, and queuing theory. These lectures pave the way to understanding the nuanced performance aspects and design considerations of modern filesystems.

Deep dives into filesystems cover design principles, case studies, buffering, reliability, and transactions, equipping learners with practical knowledge that extends beyond theoretical concepts.

Distributed systems topics, including networking, TCP/IP, RPC, distributed file systems, and storage, are further explored, highlighting critical components of contemporary distributed computing environments. Optional advanced topics like Key Value Stores, Chord, DataCapsules, and even Quantum Computing are available, showcasing the course's breadth and forward-thinking approach.

Whether you're a student, an IT professional, or a systems programming enthusiast, this course offers a thorough, detailed exploration of operating systems that is sure to enhance your knowledge and skills in this vital area of technology.

Conteúdo do Curso

  • Video class: CS162 Lecture 1: What is an Operating System?

    1h23m

  • Exercise: Which of the following statements best describes the role of an operating system in modern computing environments?

  • Video class: CS162 Lecture 2: Four Fundamental OS Concepts

    1h22m

  • Exercise: What mechanism does an operating system use to ensure that user programs cannot directly perform hardware operations that should only be performed by the system kernel?

  • Video class: CS162 Lecture 3: Abstractions 1: Threads and Processes

    1h27m

  • Exercise: In the context of operating systems, what is the primary distinction between a thread and a process?

  • Video class: CS162 Lecture 4: Abstractions 2: Files and I/O

    1h28m

  • Exercise: In the context of system programming, what is the primary purpose of using the `dupe` system call?

  • Video class: CS162 Lecture 5: Abstractions 3: IPC, Pipes and Sockets

    1h26m

  • Exercise: What is the main purpose of the fork system call in Unix-like operating systems?

  • Video class: CS162: Lecture 6: Synchronization 1: Concurrency and Mutual Exclusion

    1h30m

  • Exercise: What is the primary reason for using locks in concurrent programming within operating systems?

  • Video class: CS162: Lecture 6.5: Concurrency and Mutual Exclusion (Supplemental)

    0h47m

  • Exercise: What is the primary purpose of using locks in the context of concurrent programming?

  • Video class: CS162 Lecture 7: Synchronization 2: Semaphores (Con't), Lock Implementation, Atomic Instructions

    1h27m

  • Exercise: In a multi-threaded environment within an operating system, which of the following synchronization techniques is used to ensure that a thread yields control and is no longer consuming CPU cycles while waiting for a resource to become available?

  • Video class: CS162 Lecture 8: Synchronization 3: Atomic Instructions (Con't), Monitors, Readers/Writers

    1h28m

  • Exercise: What is one major downside of using busy waiting in synchronization mechanisms?

  • Video class: CS162 Lecture 9: Synchronization 4: Monitors and Readers/Writers (Con't), Process Structure

    1h29m

  • Exercise: In an operating system, how can a monitor be described in terms of concurrency control?

  • Video class: CS162 Lecture 10: Scheduling 1: Concepts and Classic Policies

    1h28m

  • Exercise: In the context of CPU scheduling, what is a key advantage of using Round-Robin (RR) scheduling over First-Come, First-Served (FCFS) scheduling?

  • Video class: CS162 Lecture 11: Scheduling 2: Case Studies, Real Time, and Forward Progress

    1h27m

  • Exercise: What key aspect differentiates real-time scheduling from conventional scheduling in operating systems?

  • Video class: CS162 Lecture 12: Scheduling 3: Deadlock

    1h26m

  • Exercise: Which of the following is NOT a condition that must be present to potentially cause a deadlock in a system?

  • Video class: CS162 Lecture 13: Memory 1: Address Translation and Virtual Memory

    1h28m

  • Exercise: What is the main purpose of implementing the Banker's Algorithm in a system's operating system?

  • Video class: CS162 Lecture 14: Memory 2: Virtual Memory (Con't), Caching and TLBs

    1h24m

  • Exercise: What is a primary advantage of having multiple levels of page tables in virtual memory systems?

  • Video class: CS162 Lecture 15: Memory 3: Caching and TLBs (Con't), Demand Paging

    1h27m

  • Exercise: In a caching system, what is a major advantage of a two-level page table with a 32-bit address space and 4-byte page table entries?

  • Video class: CS162 Lecture 16: Memory 4: Demand Paging Policies

    1h29m

  • Exercise: In the context of page replacement algorithms, which of the following statements is true?

  • Video class: CS162 Lecture 17: Demand Paging (Finished), General I/O, Storage Devices

    1h24m

  • Exercise: In the context of virtual memory and page replacement algorithms, which of the following statements is true about the Clock algorithm?

  • Video class: CS162 Lecture 18: General I/O (Con't), Storage Devices, Performance

    1h27m

  • Exercise: In the context of storage devices, what is one key difference between 'solid state drives (SSDs)' and 'hard disk drives (HDDs)'?

  • Video class: CS162 Lecture 19: Filesystems 1: Performance (Con't), Queueing Theory, Filesystem Design

    1h28m

  • Exercise: In queueing theory, what effect does an increase in burstiness of arrivals have on the average queuing time in a system that has constant average arrival rate?

This free course includes:

38 hours and 48 minutes of online video course

Exercises to train your knowledge

Certificate of course completion

100% free, from content to certificate

QR Code - Baixar Cursa - Cursos Online

This online course can only be accessed through the Cursa App. Download it using the QR code or the links below:

This online course can only be accessed through the Cursa app. Install it using the links below:

  • Study for free!

    Here you never pay! Not even for the certificate, because everything in the app is 100% free!

  • Improve your resume!

    There are more than 4,000 free courses for you to study anything that interests you!

  • Free Digital Certificate!

    Complete the course and issue your internationally recognized Digital Certificate free of charge.

More free courses at Operational Systems

Download the App now to have access to + 3300 free courses, exercises, certificates and lots of content without paying anything!

  • 100% free online courses from start to finish

    Thousands of online video courses, audio or text courses.

  • More than 48 thousand free exercises

    To test your knowledge during online courses

  • Valid free Digital Certificate with QR Code

    Generated directly from your cell phone's photo gallery and sent to your email

Cursa app on the ebook screen, the video course screen and the course exercises screen, plus the course completion certificate

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text