CS 345 Course Overview - PowerPoint PPT Presentation

1 / 35
About This Presentation
Title:

CS 345 Course Overview

Description:

Required Text: 'Operating Systems Internals and Design Principles (6th Edition) ... website (http://www.knoppix.net/) for a free Linux system bootable from CD ROM. ... – PowerPoint PPT presentation

Number of Views:134
Avg rating:3.0/5.0
Slides: 36
Provided by: paulr7
Category:

less

Transcript and Presenter's Notes

Title: CS 345 Course Overview


1
CS 345Course Overview
  • Introduction

2
Course Information
  • Required Text Operating Systems Internals and
    Design Principles (6th Edition) by William
    Stallings
  • User CS 345 Web Site
  • http//students.cs.byu.edu/cs345ta/
  • Syllabus
  • Schedule
  • Projects
  • Homework
  • Use Blackboard
  • Homework answers
  • Grades
  • Discussion board and Email
  • Complete assigned reading and attend class!

3
William Stallings
  • William Stallings has authored 17 titles, and
    counting revised editions, a total of 35 books on
    various aspects of these subjects. In over 20
    years in the field, he has been a technical
    contributor, technical manager, and an executive
    with several high-technology firms. Currently he
    is an independent consultant whose clients have
    included computer and networking manufacturers
    and customers, software development firms, and
    leading-edge government research institutions.
    Bill has designed and implemented both
    TCP/IP-based and OSI-based protocol suites on a
    variety of computers and operating systems,
    ranging from microcomputers to mainframes. As a
    consultant, he has advised government agencies,
    computer and software vendors, and major users on
    the design, selection, and use of networking
    software and products.
  • Dr. Stallings holds a PhD from M.I.T. in Computer
    Science and a B.S. from Notre Dame in electrical
    engineering.

4
Syllabus
  • Computer Science 345 is an introduction to the
    principles underlying the design and the
    implementation of contemporary computer operating
    systems.
  • Class designed for students majoring in Computer
    Science or in areas having a strong emphasis in
    Computer Science.

5
Syllabus (continued)
  • At the end of the course, the student should have
    a basic understanding of
  • Design and implementation issues of contemporary
    operating systems
  • Detailed analysis of process, multithreading,
    symmetric multiprocessing, and microkernels
  • Memory management techniques, including virtual
    memory
  • Various approaches to process scheduling
  • Operating system control of Input/Output
  • Operating system management of files
  • Distributed systems
  • Computer security

6
Prerequisites
  • CS 124, CS 235, CS 236, CS 240.
  • CS 345 is a prerequisite to CS 360.
  • Knowledge of C.
  • Or, instructors consent.

7
CS 142 Intro to Comp Prog
1. Complete all CS core classes. (No D credit
accepted.) 2. Complete the following supporting
courses a. Engl 316. b. Math 112, 113,
343. c. Phscs 121. d. Stat 221 (or Stat 321,
331, 332, or 441). 3. Complete 6 elective courses
selected as follows a. 4 courses from ECEn 342,
425, or 400-level CS courses (except 404 and
405). b. 1 additional course from (a) or a
500-level CS course. c. 1 additional course from
(a), or CS 405, or Math 214, 315, 334, 350,
355, 371, 410, or Stat 321, 331, 332, 336, 421,
441, or Biol 120, or Chem 112, or Geol 112, or
Phscs 123, 220. (Other science courses may
apply when NOT used for GE science
requirement. Check with advisement first.)
Freshman
CS 235 Data Structures
CS 124 Intro to Comp Sys
Sophomore
CS 236 Discrete Structures
CS 252 Intro to Comp Theory
CORE
CS 240 Advanced Prog
Engl 316 Technical Writing
Junior
CS 345 Operating Systems
CS 330 Prog Languages
CS 360 Internet Prog
CS 340 Software Engin
CS 404 Comp in Society
CS 312 Algorithm Analysis
Senior
Math 112
Phscs 121
ECEn 425 Real-time OS
ECEn 324 Comp Architecture
CS 431 Compilers
CS 428 Software Sys Design
CS 412 Models Optimization
CS 452 Database Modeling
Math 113
Stat 221
CS 455 Comp Graphics
CS 460 Networks
CS 478 Machine Learning
CS 465 Comp Security
CS 405 Software Business
Math 343
CS 462 Distributed Systems
CS 456 User Interface Software
CS 486 Verification/ Validation
ELECTIVES
Additional Elective 1
CS 498 Internship
CS 450 Signal Image Processing
BYU Computer Science Requirements / Prerequisite
Chain Fall 2008
Additional Elective 2
CS 470 Artificial Intelligence
CS 476 Data Mining
8
Organization and Grading
  • This class consists of lecture, homework,
    programming assignments, midterms, and a final.
    Each has a weighted contribution to your final
    grade.
  • Homework 10
  • Programming Assignments 50
  • Participation/Presentation 10
  • 2 Midterms 18
  • Final 12

9
Lab Grading
  • Programming assignments (50)
  • Project 1 Shell (CLI) (Sep 18) 6
  • Project 2 Scheduling (Oct 2) 8
  • Project 3 Jurassic Park (Oct 16) 10
  • Project 4 DME (Oct 30) 6
  • Project 5 Virtual Memory (Nov 13) 10
  • Project 6 FAT (Dec 4) 10

10
Grades (continued)
  • Grades are assigned on the following scale from
    the composite total of above areas

100-93 A 82-80 B- 69-67 D 92-90 A- 79-77
C 66-63 D 89-87 B 76-73 C 62-60 D- 86-83
B 72-70 C- 59-0 E
11
Homework (10)
  • Homework assignments are designed to reinforce
    class material and help in exam preparation.
  • Most homework consists of 5-10 questions and
    covers the material from the previous class
    discussion.
  • Homework is assigned weekly and is due on Friday
    at the beginning of class.
  • Any homework submitted after the due date will
    lose 50 per week. (After 1 week, an assignment
    has no grading value!).

12
Homework (continued)
  • Homework must have the students name, section,
    and homework number clearly indicated at the top
    of the homework to be accepted for grading.
  • Finally, you are welcome and encouraged to
    discuss the homework with your classmates and
    others. However, you are to do and submit your
    own work. Submitting someone's work is
    considered cheating for which you will receive an
    E grade for the class and be reported to the
    Honor Code Office.

13
Programming Assignments (50)
  • There are six programming assignments designed to
    emphasize topics discussed in class.
  • The programming assignments build upon each other
    and explore a variety of operating system
    principles.
  • Programming assignments can be found on the CS345
    web site (http//students.cs.byu.edu/cs345ta/).
  • Programming assignments must be passed off by a
    TA during regular TA hours in the TA offices or
    class programming labs.

14
Programming (continued)
  • To receive full credit, programming assignments
    must be completed and passed off with a Date
    Modified timestamp on or before the due date.
  • NOTE Timestamps cannot be used for extra credit
    points and cannot be more than two days
    delinquent.
  • Any assignment completed and passed off after the
    due date will lose 10 per school day. (After 2
    weeks, an assignment has no grading value!).
  • Programming assignments can be passed off on
    school computers or personal laptops.

15
Programming (continued)
  • As an incentive to get your assignments done
    early and to motivate you to thoroughly check
    your work, assignments passed off at least one
    day before the due date (timestamps do not count)
    with a TA, will receive an additional 10 extra
    credit.
  • Any grade points earned on assignments above the
    allotted percentage may apply to your overall
    grade.
  • All assignments MUST BE COMPLETED, PASSED OFF AND
    SUBMITTED on or before the final day of class.

16
Programming (continued)
  • All six programming assignments must be completed
    to receive and A or A- grade.
  • Everyone who completes all six programming
    assignments (regardless of their scores) and
    passes the final exam (70 or better) will pass
    the class with at least a C- grade.

17
Exams (30)
  • Midterms and the final exam are administered in
    the testing center.
  • The midterms are available from Thursday until
    closing on Saturday.
  • The final will be given during finals week at the
    testing center.
  • Anyone missing a midterm without prior
    arrangement is automatically assessed a 50
    penalty.

18
Presentations (10)
  • Discuss subject matter with respect to assigned
    contemporary operating system.
  • Use slides, handouts, and/or examples as needed.
  • Presentations are to last NO LONGER THAN 15
    MINUTES!
  • Submit 2 questions that may be used on the class
    final exam and your presentation material.
  • Presentation is worth 10 of final grade.

19
Programming Environments
  • Programming of the assignments will be done in
    the C programming language.
  • The choice of the software tools and programming
    environment is left to the students discretion.
  • In any case, it is the students responsibility
    to present their work to a TA in the designated
    CS 345 lab for pass off. (Downstairs TMCB)

20
Programming Environments (continued)
  • Windows users can download a very good free C
    compiler at the LCC website (http//www.cs.virgini
    a.edu/lccwin32/).
  • For those wanting to use Linux on their personal
    computers, look at the KNOPPIX website
    (http//www.knoppix.net/) for a free Linux system
    bootable from CD ROM.
  • For those who do not own a computer or would just
    rather do their work using BYU facilities, there
    are Linux/Unix labs available in the Computer
    Science building using the gcc compiler. The
    EMACS text editor would probably be the editor of
    choice.

21
Grade Verification and Appeals Policy
  • It is the students responsibility to verify that
    scores have been correctly recorded on
    Blackboard.
  • If a score is incorrect on Blackboard, then the
    student should appeal through email to the
    grading TA.
  • The student can appeal a grade on an exam
    directly to their instructor through email.

22
Academic Honesty
  • Academic honesty includes completing your own
    homework, labs, midterms, and final.
  • Students should work together to help each other
    understand material, but should always turn in
    their own work.
  • Examples of academic dishonesty include sharing
    code for labs with other students, turning in
    someone else's writing as your own report, and
    cheating on an exam.

23
Academic Honesty (continued)
  • The first violation of academic honesty standards
    will result in the student failing the class.
  • All violations of academic honesty are documented
    and reported to the Honor Code office.

24
Schedule
  • Week 1 Intro, Chapter 2
  • Week 2 Chapters 1, 3 4 HW 1
  • Week 3 Chapters 5 9 HW 2 L1 CLI
  • Week 4 Chapters 4, 5 6 HW 3
  • Week 5 Chapters 6 10 L2 Tasking Exam 1
    (1-4,9)
  • Week 6 Chapters 10, 13 14 HW 4
  • Week 7 Chapters 7 15 HW 5 L3 Philosophers
  • Week 8 Chapter 8 Exam 2 (5-7,10)
  • Week 9 Chapters 8 12 HW 6 L4 DME
  • Week 10 Chapters 12 13 HW 7
  • Week 11 Chapter 11 L5 VM Exam 3 (8,11-12)
  • Week 12 Chapter 15
  • Week 13 Presentations HW 8
  • Week 14 Presentations HW 9 L6 FAT
  • Week 15 Presentations Review
  • Week 16 Finals Final (1-16)

25
OS345
  • Project 1 Shell. Write a Shell (Command
    Language Interpreter) to parse textual commands
    entered from the users keyboard, malloc argument
    variables, handle signals, and execute programs
    directly or as child processes.
  • Project 2 Scheduler. Write a five-state task
    scheduler capable of simultaneously executing up
    to 128 tasks in a preemptive, prioritized,
    round-robin manner. Implement binary and
    counting semaphores and schedule your CLI as its
    first task with pseudo-interrupt driven character
    input. Add timer semaphores and tasks to
    validate your implementation.

26
OS345 (continued)
  • Project 3 Jurassic Park. Jurassic Park is an
    inter-process communication and synchronization
    problem between multiple tasks. Visitors to the
    park purchase a ticket, wait to take a ride on a
    park tour car to see the dinosaurs, and then
    visit the museum and gift shops before leaving
    the park. Since the park is on a limited budget,
    drivers must perform double duty when not
    sleeping by selling tickets and driving the tour
    cars. Visitors, drivers, and cars are represents
    by concurrent tasks while an additional task is
    used to display the park status every second.

27
OS345 (continued)
  • Project 4 Distributed Mutual Exclusion.
    Integrate a distributed banking system consisting
    of nine remote ATMs (clients) and one
    centralized Bank (server) into your OS and
    implement a distributed mutual exclusion
    mechanism (Lamports algorithm) to protect
    asynchronous accesses to the Bank (critical
    section).

28
OS345 (continued)
  • Project 5 Virtual Memory. Add a Memory
    Management Unit (MMU) to your OS that translates
    virtual LC-3 addresses to physical addresses in a
    restricted memory space. Validate your
    implementation by successfully executing up to 10
    LC-3 crawler and/or memory test programs
    concurrently in 2 frames of physical memory (128
    words).

29
OS345 (continued)
  • Project 6 FAT File Manager. Add a MS-DOS
    FAT-12 file manager to your OS that is able to
    traverse file directories, view file data, and
    load/execute LC-3 programs from files. Implement
    creation, access, and modification of FAT-12
    files by adding file manager functions and
    commands that use file system buffering, basic
    file I/O, file descriptors, and file pointers to
    modify file allocation tables (FAT), directory
    structures and cluster chains.

30
Miscellaneous
  • TAs
  • Help sessions
  • Office hours
  • Student manual
  • Linux vs Microsoft users
  • Questions?

31
Why CS 345?
32
Operating Systems
  • What is an operating system?
  • Hard to define precisely, because operating
    systems arose historically as people needed to
    solve problems associated with using computers.
  • How about
  • Software that makes computing power available to
    users by controlling the hardware.
  • Software executes when nothing else is
    happening.
  • A collection of software modules including
    device drivers, libraries, and access routines.

33
What Does a Modern Operating System Do?
  • Provides Abstractions
  • Hardware has low-level physical resources with
    complicated, idiosyncratic interfaces.
  • OS provides abstractions that present clean
    interfaces.
  • Goal make computer easier to use.
  • Examples Processes, Unbounded Memory, Files,
    Synchronization and Communication Mechanisms.
  • Provides Standard Interface
  • Goal portability.
  • Unix runs on many very different computer systems.

34
What Does a Modern Operating System Do?
  • Mediates Resource Usage
  • Goal allow multiple users to share resources
    fairly, efficiently, safely and securely.
  • Examples
  • Multiple processes share one processor.
    (preemptable resource)
  • Multiple programs share one physical memory
    (preemptable resource).
  • Multiple users and files share one disk.
    (non-preemptable resource)
  • Multiple programs share a given amount of disk
    and network bandwidth (preemptable resource).
  • Consumes Resources
  • Solaris takes up about 8 Mbytes physical memory
    (or about 400).

35
The Future
  • In the future, computers will continue to become
    physically smaller and more portable.
  • Operating systems have to deal with issues like
    disconnected operation and mobility.
  • Media rich information within the grasp of common
    people - information with psuedo-real time
    components like voice and video.
  • Operating systems will have to adjust to deliver
    acceptable performance for these new forms of
    data.

36
Finally
  • Operating systems are so large no one person
    understands whole system. Outlives any of its
    original builders.
  • The major problem facing computer science today
    is how to build large, reliable software systems.
  • Operating systems are one of very few examples of
    existing large software systems, and by studying
    operating systems we may learn lessons applicable
    to the construction of larger systems.
Write a Comment
User Comments (0)
About PowerShow.com