Difference between revisions of "Student Extended Xinu"

From Embedded Xinu
Jump to navigation Jump to search
(→‎Course Outcomes: changed "communication and networking courses" to "operating systems courses" to fix an old typo)
 
(11 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
[[Category:Teaching With Xinu]]
 
[[Category:Teaching With Xinu]]
[[Category:Student Built Xinu]]
+
[[Category:Student Extended Xinu]]
 
== Overview ==
 
== Overview ==
Having students build their own [[Xinu]] is one of the potential tracks presented for a professor that is [[Teaching With Xinu]].
+
Having students integrate advanced operating systems features and develop applications for a their own or a provided [[Xinu]] operating system is one of the potential tracks presented for a professor that is [[Teaching With Xinu]].
  
 
Students will learn to extend an operating system by adding kernel level and user level applications. Given a functional Embedded Xinu operating system the students will have to understand and manipulate existing operating system code to create additional operating system features. To add more applications to the operating system students will have to understand the interactions between the program in design and the operating system's device and kernel interaction calls. Programming for embedded devices allows students to engage in development on small resource constrained environments. Through extending the existing Embedded Xinu operating system a student learns to use and understand code not written by the student and develops advanced operating system concepts.
 
Students will learn to extend an operating system by adding kernel level and user level applications. Given a functional Embedded Xinu operating system the students will have to understand and manipulate existing operating system code to create additional operating system features. To add more applications to the operating system students will have to understand the interactions between the program in design and the operating system's device and kernel interaction calls. Programming for embedded devices allows students to engage in development on small resource constrained environments. Through extending the existing Embedded Xinu operating system a student learns to use and understand code not written by the student and develops advanced operating system concepts.
  
 
== Course Outcomes ==
 
== Course Outcomes ==
 +
Course development can parallel learning objectives and topics associated with many Operating Systems courses. [[Student Built Xinu#References|[1]]]
 +
 +
=== Topics ===
 +
* Overview of operating systems
 +
* Operating system principles
 +
* Concurrency
 +
* Scheduling and dispatch
 +
* Memory management
 +
* Device management
 +
* Security and protection
 +
* File systems
 +
* Evaluating system performance
 +
 +
=== Learning Objectives ===
 +
* Intimate knowledge of embedded devices.
 +
* Overview of the general and specific purpose of an operating system.
 +
* Understanding concurrency and state flow diagrams.
 +
* Understanding deadlock and starvation.
 +
* Understanding the use of memory and virtual memory.
 +
* Characteristics of serial and parallel devices.
  
 
== Potential Course Structure ==
 
== Potential Course Structure ==
An course using the below course outline or something similar will introduce students to some fundamental and advanced concepts of operating systems combined with the development in a resource constrained environment.
+
A course where having students integrate advanced operating systems features and develop applications for a their own or a provided Xinu operating system can be outlined to one similar to the one below. The example course layout has the listed applied assignments as well as several written assignments of problems developed with the textbook in mind or taken from the textbook.
 
===== Course Outline =====
 
===== Course Outline =====
 
{|
 
{|
 
| Week || || || Topics || || || || Assignments
 
| Week || || || Topics || || || || Assignments
 
|-
 
|-
| 01 || || || C (basics) and OS Structures, Processes || || || || [[Assignment: C Basics|C Basics]]
+
| 01 || || || C (basics) and OS Structures, Processes || || || || [[Assignment: Extending Xinu #1|Extending Xinu #1]]
 
|-
 
|-
 
| 02 || || || C (functions, control flow) and Processes ||  
 
| 02 || || || C (functions, control flow) and Processes ||  
 
|-
 
|-
| 03 || || || C (pointers, arrays, structs) and Threads || || || || [[Assignment: C Structs and Pointers|C Structs and Pointers]]
+
| 03 || || || C (pointers, arrays, structs) and Threads || || || ||  
 
|-
 
|-
| 04 || || || CPU Scheduling || || || || [[Assignment: Synchronous Serial Driver|Synchronous Serial Driver]]
+
| 04 || || || CPU Scheduling || || || || [[Assignment: Extending Xinu #2|Extending Xinu #2]]
 
|-
 
|-
 
| 05 || || || CPU Scheduling ||
 
| 05 || || || CPU Scheduling ||
 
|-
 
|-
| 06 || || || Process Synchronization || || || || [[Assignment: Context Switch and Non-Preemptive Scheduling|Context Switch and Non-Preemptive Scheduling]]
+
| 06 || || || Process Synchronization || || || ||  
 
|-
 
|-
| 07 || || || Deadlocks || || || || [[Assignment: Priority Scheduling and Process Termination|Priority Scheduling and Process Termination]]
+
| 07 || || || Deadlocks || || || ||  
 
|-
 
|-
| 08 || || || Main Memory and Virtual Memory ||   
+
| 08 || || || Main Memory and Virtual Memory || || || ||  [[Assignment: Extending Xinu #5|Extending Xinu #3]]
 
|-
 
|-
| 09 || || || File System Interface || || || || [[Assignment: Preemption and Synchronization|Preemption and Synchronization]]
+
| 09 || || || File System Interface || || || ||  
 
|-
 
|-
 
| 10 || || || File System Implementation ||  
 
| 10 || || || File System Implementation ||  
 
|-
 
|-
| 11 || || || Mass-Storage Structure || || || || [[Assignment: Delta Queues|Delta Queues]]
+
| 11 || || || Mass-Storage Structure || || || ||
 
|-
 
|-
| 12 || || || I/O Systems || || || || [[Assignment: Heap Memory|Heap Memory]]
+
| 12 || || || I/O Systems || || || || [[Assignment: Extending Xinu #7|Extending Xinu #4]]
 
|-
 
|-
| 13 || || || Protection, Security and Distributed System Structures || || || || [[Assignment: Asynchronous Device Driver|Asynchronous Device Driver]]
+
| 13 || || || Protection, Security and Distributed System Structures || || || ||  
 
|-
 
|-
 
| 14 || || || Distributed System Structures ||  
 
| 14 || || || Distributed System Structures ||  
 
|-
 
|-
| 15 || || || Distributed File Systems || || || || [[Assignment: Ultra-Tiny File System|Ultra-Tiny File System]]
+
| 15 || || || Distributed File Systems || || || ||
 
|}
 
|}
 +
 
===== Books =====
 
===== Books =====
 +
* There are no suggested books for this course outline.
 +
 +
==References==
 +
[1] Course topics and learning objectives have been adapted from the ACM's [http://www.acm.org/education/education/education/curric_vols/cc2001.pdf Computing Curricula 2001 Computer Science].
 +
 +
 +
----
 +
 +
<small><small>This work funded in part by NSF grant DUE-CCLI-0737476.</small></small>

Latest revision as of 19:34, 27 July 2010

Overview

Having students integrate advanced operating systems features and develop applications for a their own or a provided Xinu operating system is one of the potential tracks presented for a professor that is Teaching With Xinu.

Students will learn to extend an operating system by adding kernel level and user level applications. Given a functional Embedded Xinu operating system the students will have to understand and manipulate existing operating system code to create additional operating system features. To add more applications to the operating system students will have to understand the interactions between the program in design and the operating system's device and kernel interaction calls. Programming for embedded devices allows students to engage in development on small resource constrained environments. Through extending the existing Embedded Xinu operating system a student learns to use and understand code not written by the student and develops advanced operating system concepts.

Course Outcomes

Course development can parallel learning objectives and topics associated with many Operating Systems courses. [1]

Topics

  • Overview of operating systems
  • Operating system principles
  • Concurrency
  • Scheduling and dispatch
  • Memory management
  • Device management
  • Security and protection
  • File systems
  • Evaluating system performance

Learning Objectives

  • Intimate knowledge of embedded devices.
  • Overview of the general and specific purpose of an operating system.
  • Understanding concurrency and state flow diagrams.
  • Understanding deadlock and starvation.
  • Understanding the use of memory and virtual memory.
  • Characteristics of serial and parallel devices.

Potential Course Structure

A course where having students integrate advanced operating systems features and develop applications for a their own or a provided Xinu operating system can be outlined to one similar to the one below. The example course layout has the listed applied assignments as well as several written assignments of problems developed with the textbook in mind or taken from the textbook.

Course Outline
Week Topics Assignments
01 C (basics) and OS Structures, Processes Extending Xinu #1
02 C (functions, control flow) and Processes
03 C (pointers, arrays, structs) and Threads
04 CPU Scheduling Extending Xinu #2
05 CPU Scheduling
06 Process Synchronization
07 Deadlocks
08 Main Memory and Virtual Memory Extending Xinu #3
09 File System Interface
10 File System Implementation
11 Mass-Storage Structure
12 I/O Systems Extending Xinu #4
13 Protection, Security and Distributed System Structures
14 Distributed System Structures
15 Distributed File Systems
Books
  • There are no suggested books for this course outline.

References

[1] Course topics and learning objectives have been adapted from the ACM's Computing Curricula 2001 Computer Science.



This work funded in part by NSF grant DUE-CCLI-0737476.