<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=Operating_Systems_2021F_Lecture_23</id>
	<title>Operating Systems 2021F Lecture 23 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=Operating_Systems_2021F_Lecture_23"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2021F_Lecture_23&amp;action=history"/>
	<updated>2026-04-06T06:18:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2021F_Lecture_23&amp;diff=23579&amp;oldid=prev</id>
		<title>Soma: Created page with &quot;==Video==  Video from the lecture given on December 9, 2021 is now available: * [https://homeostasis.scs.carleton.ca/~soma/os-2021f/lectures/comp3000-2021f-lec23-20211209.m4v...&quot;</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2021F_Lecture_23&amp;diff=23579&amp;oldid=prev"/>
		<updated>2021-12-09T18:45:14Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==Video==  Video from the lecture given on December 9, 2021 is now available: * [https://homeostasis.scs.carleton.ca/~soma/os-2021f/lectures/comp3000-2021f-lec23-20211209.m4v...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Video==&lt;br /&gt;
&lt;br /&gt;
Video from the lecture given on December 9, 2021 is now available:&lt;br /&gt;
* [https://homeostasis.scs.carleton.ca/~soma/os-2021f/lectures/comp3000-2021f-lec23-20211209.m4v video]&lt;br /&gt;
* [https://homeostasis.scs.carleton.ca/~soma/os-2021f/lectures/comp3000-2021f-lec23-20211209.cc.vtt auto-generated captions]&lt;br /&gt;
Video is also available through Brightspace (Resources-&amp;gt;Class zoom meetings-&amp;gt;Cloud Recordings tab)&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Lecture 23&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
Final is on December 16th, 7-9 PM&lt;br /&gt;
 - if you have accommodations, the timing might be a bit different&lt;br /&gt;
&lt;br /&gt;
I can potentially have the final earlier in the day for some, let me know&lt;br /&gt;
 - but I need it to be fixed time&lt;br /&gt;
&lt;br /&gt;
Final is same format as midterm&lt;br /&gt;
 - no proctoring software&lt;br /&gt;
 - but there will be interviews, ideally the week of Dec. 27th,&lt;br /&gt;
   but if necessary the week of January 3rd.&lt;br /&gt;
     - so everything will be graded by then&lt;br /&gt;
     - if week of Jan 3rd, final grades will be submitted,&lt;br /&gt;
       but I can submit a change of grade if things go up&lt;br /&gt;
&lt;br /&gt;
Practice questions&lt;br /&gt;
 - that&amp;#039;s the assignments and the midterm&lt;br /&gt;
 - I suggest making up your own&lt;br /&gt;
&lt;br /&gt;
I will have an optional review session on Dec. 14th&lt;br /&gt;
 - will be recorded, but I will have no prepared material&lt;br /&gt;
&lt;br /&gt;
Final exam is open book/open note/open internet&lt;br /&gt;
 - just NO COLLABORATION&lt;br /&gt;
&lt;br /&gt;
But here&amp;#039;s a hint - online isn&amp;#039;t your best choice&lt;br /&gt;
 - if you look up more than a few questions, you are doing it wrong&lt;br /&gt;
 - takes up too much time, and will often mislead you&lt;br /&gt;
&lt;br /&gt;
Look to the textbook when the tutorials/assignments feel unclear&lt;br /&gt;
 - they will provide lots of context&lt;br /&gt;
&lt;br /&gt;
atomic - something that is &amp;quot;indivisible&amp;quot;&lt;br /&gt;
 - so an atomic operation can&amp;#039;t be divided, it all happens or none of it happens&lt;br /&gt;
 - in databases, we make things indivisible with transactions&lt;br /&gt;
    - but that just means we undo changes if we can do them all&lt;br /&gt;
&lt;br /&gt;
What is the heart of concurrency problems? TOCTTOU&lt;br /&gt;
 - &amp;quot;time of check to time of use&amp;quot;&lt;br /&gt;
 - data changes between the time you check it to the time you modify/use&lt;br /&gt;
   it&lt;br /&gt;
&lt;br /&gt;
 - Anywhere you check data and then do something based on that test&lt;br /&gt;
   is where concurrency issues can bite you&lt;br /&gt;
     - which is all over the place&lt;br /&gt;
&lt;br /&gt;
single-threaded processes really minimize concurrency issues&lt;br /&gt;
 - minimal concurrency issue inside a process (except signals)&lt;br /&gt;
 - between process concurrency is managed through system calls&lt;br /&gt;
    - which from a process perspective are mostly atomic&lt;br /&gt;
    - and there are mechanisms to enfore mutual exclusion for communication, e.g. pipes&lt;br /&gt;
&lt;br /&gt;
What is ioctl?&lt;br /&gt;
 - a system call that is device specific&lt;br /&gt;
    - basically, a way to send custom messages to a device driver&lt;br /&gt;
 - NO uniformity, so can make it whatever you want&lt;br /&gt;
 - very old fashioned, not preferred nowadays but still used&lt;br /&gt;
&lt;br /&gt;
Mental model: ioctl lets you control a device&lt;br /&gt;
 - e.g., if it is a tape drive, lets you eject a tape&lt;br /&gt;
 - things that don&amp;#039;t fit into a classic file API model&lt;br /&gt;
&lt;br /&gt;
You may volunteer for final interviews&lt;br /&gt;
 - will have plenty of time!&lt;br /&gt;
   - may have to extend into Winter term&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
</feed>