<?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_2020W_Lecture_4</id>
	<title>Operating Systems 2020W Lecture 4 - 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_2020W_Lecture_4"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2020W_Lecture_4&amp;action=history"/>
	<updated>2026-06-02T22:28:27Z</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_2020W_Lecture_4&amp;diff=22569&amp;oldid=prev</id>
		<title>Soma: Created page with &quot;==Video==  Video from the lecture given on January 17, 2020 [https://homeostasis.scs.carleton.ca/~soma/os-2020w/lectures/comp3000-2020w-lec04-20200117.m4v is now available]....&quot;</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Operating_Systems_2020W_Lecture_4&amp;diff=22569&amp;oldid=prev"/>
		<updated>2020-03-20T02:30:26Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==Video==  Video from the lecture given on January 17, 2020 [https://homeostasis.scs.carleton.ca/~soma/os-2020w/lectures/comp3000-2020w-lec04-20200117.m4v is now available]....&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 January 17, 2020 [https://homeostasis.scs.carleton.ca/~soma/os-2020w/lectures/comp3000-2020w-lec04-20200117.m4v is now available].&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Lecture 4&lt;br /&gt;
---------&lt;br /&gt;
&lt;br /&gt;
What is a assembly-language view of a computer?&lt;br /&gt;
&lt;br /&gt;
* hardware registers&lt;br /&gt;
  - general purpose registers&lt;br /&gt;
  - special purpose registers&lt;br /&gt;
  - status/flag registers&lt;br /&gt;
  - access and manipulate by specifying register directly or&lt;br /&gt;
    registers change behavior indirectly&lt;br /&gt;
&lt;br /&gt;
* memory (RAM)&lt;br /&gt;
  - each memory location has a unique address&lt;br /&gt;
  - get value or change value by specifying address&lt;br /&gt;
  &lt;br /&gt;
* (maybe) I/O ports&lt;br /&gt;
  - access to devices&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This assembly-language view is implemented in UNIX processes&lt;br /&gt;
&lt;br /&gt;
registers&lt;br /&gt;
 - &amp;quot;variables&amp;quot; that can be manipulated by instructions&lt;br /&gt;
 - size varies, but 64-bit computers generally have 64-bit registers&lt;br /&gt;
&lt;br /&gt;
modern computers mostly follow a load-store architecture&lt;br /&gt;
 - load value(s) into registers from RAM&lt;br /&gt;
 - manipulate values in registers&lt;br /&gt;
 - save registers to RAM&lt;br /&gt;
&lt;br /&gt;
(cache (L1, L2, L3)&lt;br /&gt;
 - faster memory to make register&amp;lt;-&amp;gt;memory operations faster&lt;br /&gt;
 - cache not visible to programs)&lt;br /&gt;
&lt;br /&gt;
To add two numbers together in two variables x and y and store in z&lt;br /&gt;
 - load x into a register&lt;br /&gt;
 - load y into another register&lt;br /&gt;
 - add registers together, store result in one of them&lt;br /&gt;
 - save result register to z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modern CPUs have very few registers&lt;br /&gt;
 - at most 64 registers&lt;br /&gt;
&lt;br /&gt;
Hennessey &amp;amp; Patterson, Computer Architecture, a Quantitative Approach&lt;br /&gt;
 - read this to learn more about computer architecture and the performance&lt;br /&gt;
   tradeoffs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
</feed>