<?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=Mobile_App_Development_2022W_Lecture_21</id>
	<title>Mobile App Development 2022W Lecture 21 - 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=Mobile_App_Development_2022W_Lecture_21"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Mobile_App_Development_2022W_Lecture_21&amp;action=history"/>
	<updated>2026-04-06T01:53:55Z</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=Mobile_App_Development_2022W_Lecture_21&amp;diff=23974&amp;oldid=prev</id>
		<title>Soma: Created page with &quot;==Video==  Video from the lecture given on April 1, 2022 is now available: * [https://homeostasis.scs.carleton.ca/~soma/mad-2022w/lectures/comp1601-2022w-lec21-20220401.m4v video] * [https://homeostasis.scs.carleton.ca/~soma/mad-2022w/lectures/comp1601-2022w-lec21-20220401.cc.vtt auto-generated captions] Video is also available through Brightspace (Resources-&gt;Zoom Meetings (Recordings, etc.)-&gt;Cloud Recordings tab).  Note that here you&#039;ll also see chat messages.  ==Notes=...&quot;</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Mobile_App_Development_2022W_Lecture_21&amp;diff=23974&amp;oldid=prev"/>
		<updated>2022-04-01T17:46:02Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==Video==  Video from the lecture given on April 1, 2022 is now available: * [https://homeostasis.scs.carleton.ca/~soma/mad-2022w/lectures/comp1601-2022w-lec21-20220401.m4v video] * [https://homeostasis.scs.carleton.ca/~soma/mad-2022w/lectures/comp1601-2022w-lec21-20220401.cc.vtt auto-generated captions] Video is also available through Brightspace (Resources-&amp;gt;Zoom Meetings (Recordings, etc.)-&amp;gt;Cloud Recordings tab).  Note that here you&amp;#039;ll also see chat messages.  ==Notes=...&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 April 1, 2022 is now available:&lt;br /&gt;
* [https://homeostasis.scs.carleton.ca/~soma/mad-2022w/lectures/comp1601-2022w-lec21-20220401.m4v video]&lt;br /&gt;
* [https://homeostasis.scs.carleton.ca/~soma/mad-2022w/lectures/comp1601-2022w-lec21-20220401.cc.vtt auto-generated captions]&lt;br /&gt;
Video is also available through Brightspace (Resources-&amp;gt;Zoom Meetings (Recordings, etc.)-&amp;gt;Cloud Recordings tab).  Note that here you&amp;#039;ll also see chat messages.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Lecture 21&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
Sending out emails today for randomized interview requests&lt;br /&gt;
 - will message on Teams when all emails have been sent&lt;br /&gt;
&lt;br /&gt;
Please try to sign up for slots on Monday or Tuesday&lt;br /&gt;
 - I&amp;#039;ll add slots if needed&lt;br /&gt;
&lt;br /&gt;
You can sign up for interviews right now if you want to volunteer&lt;br /&gt;
 - on Teams, under the Annoucements channel, there&amp;#039;s an &amp;quot;Interviews&amp;quot; tab which connects to a spreadsheet&lt;br /&gt;
 - if you want to ask about the grading of a question, please sign up for an interview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Remember the final exam is cumulative&lt;br /&gt;
 - so it will have SwiftUI &amp;amp; Android (so Swift &amp;amp; Kotlin)&lt;br /&gt;
    - bit more Android than SwiftUI&lt;br /&gt;
    - no Storyboard except perhaps in extra credit&lt;br /&gt;
 - expect there to be questions connecting the two&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Operating systems&lt;br /&gt;
-----------------&lt;br /&gt;
Both Android and iOS are built on UNIX-like systems&lt;br /&gt;
  - Linux, MacOS/BSD UNIX&lt;br /&gt;
&lt;br /&gt;
First versions of UNIX were built in the 1970&amp;#039;s&lt;br /&gt;
 - around 50 years ago!&lt;br /&gt;
&lt;br /&gt;
Still has same basic architecture&lt;br /&gt;
&lt;br /&gt;
Key terms:&lt;br /&gt;
 - kernel&lt;br /&gt;
 - process&lt;br /&gt;
&lt;br /&gt;
What is a process (in an OS context)?&lt;br /&gt;
 - running program&lt;br /&gt;
&lt;br /&gt;
A program on disk (program binary/executable) is loaded into a process in order for it to actually run&lt;br /&gt;
 - as part of this, it gets a certain amount of memory and some time to run on the CPU&lt;br /&gt;
&lt;br /&gt;
Processes are the abstraction that allows multiple programs to run on one computer at the same time&lt;br /&gt;
 - RAM is partitioned so each process can get some&lt;br /&gt;
 - the CPU is multiplexed&lt;br /&gt;
    - one program runs for 1/100 of a second, then another runs for 1/100 of a second, and so on (they take turns)&lt;br /&gt;
    - nobody gets to run for more than their alloted time&lt;br /&gt;
&lt;br /&gt;
For a process to take up multiple cores, it must be multithreaded&lt;br /&gt;
  - each thread runs on one core&lt;br /&gt;
  - all threads of a process together share memory, together they make a process&lt;br /&gt;
&lt;br /&gt;
The OS kernel is the program that facilitates sharing between running programs&lt;br /&gt;
 - it implements the process abstraction&lt;br /&gt;
 - it thus is &amp;quot;in charge&amp;quot;, can create and destroy processes at will&lt;br /&gt;
   (and can create and destroy any data, communicate with anything)&lt;br /&gt;
&lt;br /&gt;
How can the kernel be &amp;quot;in charge&amp;quot;?&lt;br /&gt;
 - well, it ran first!  (It was started first, it then lauchches all the processes)&lt;br /&gt;
 - it runs in a special CPU mode, supervisor mode&lt;br /&gt;
    - regular processes run in user mode, and so have more limited access&lt;br /&gt;
&lt;br /&gt;
This is why when regular programs crash, they don&amp;#039;t take the whole system down&lt;br /&gt;
 - but if your GPU driver crashes, it can kill your whole system, because&lt;br /&gt;
   it runs in the kernel&lt;br /&gt;
&lt;br /&gt;
Mobile operating systems are mostly the same as desktop ones (and server ones)&lt;br /&gt;
 - same basic kernels &amp;amp; processes&lt;br /&gt;
&lt;br /&gt;
But mobile ones have some extra restrictions&lt;br /&gt;
 - processes tend to be more sandboxed (isolated from other processes)&lt;br /&gt;
    - especially on iOS&lt;br /&gt;
 - extensive &amp;quot;permission&amp;quot; infrastructure for gaining access to special resources&lt;br /&gt;
    - location, camera, address book&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
</feed>