thinkos.pdf - Think OS A Brief Introduction to Operating Systems Version 0.8.1 Allen B Downey Green Tea Press Needham Massachusetts Copyright \u00a9 2015

thinkos.pdf - Think OS A Brief Introduction to Operating...

This preview shows page 1 - 5 out of 99 pages.

Think OSA Brief Introduction to Operating SystemsVersion 0.8.1Allen B. DowneyGreen Tea PressNeedham, Massachusetts
Background image
Copyright © 2015 Allen B. Downey.Green Tea Press9 Washburn AveNeedham MA 02492Permission is granted to copy, distribute, and/or modify this document underthe terms of the Creative Commons Attribution-NonCommercial 3.0 Unported Li-cense, which is available at.The original form of this book is LATEX source code. Compiling this code has theeffect of generating a device-independent representation of a textbook, which canbe converted to other formats and printed.The LATEX source for this book is available from.The cover for this book is based on a photo by Paul Friel (), who made it available under the Creative Commons Attributionlicense. The original photo is at.
Background image
PrefaceIn many computer science programs, Operating Systems is an advancedtopic. By the time students take it, they know how to program in C, andthey have probably taken a class in Computer Architecture.Usually thegoal of the class is to expose students to the design and implementation ofoperating systems, with the implied assumption that some of them will doresearch in this area, or write part of an OS.This book is intended for a different audience, and it has different goals. Ideveloped it for a class at Olin College called Software Systems.Most students taking this class learned to program in Python, so one ofthe goals is to help them learn C. For that part of the class, I use Griffithsand Griffiths,Head First C, from O’Reilly Media.This book is meant tocomplement that one.Few of my students will ever write an operating system, but many ofthem will write low-level applications in C or work on embedded systems.My class includes material from operating systems, networks, databases,and embedded systems, but it emphasizes the topics programmers need toknow.This book does not assume that you have studied Computer Architecture.As we go along, I will explain what we need.If this book is successful, it should give you a better understanding of whatis happening when programs run, and what you can do to make them runbetter and faster.Chapter 1 explains some of the differences between compiled and inter-preted languages, with some insight into how compilers work.Recom-mended reading:Head First CChapter 1.Chapter 2 explains how the operating system uses processes to protect run-ning programs from interfering with each other.
Background image
ivChapter 0. PrefaceChapter 3 explains virtual memory and address translation. Recommendedreading:Head First CChapter 2.Chapter 4 is about file systems and data streams. Recommended reading:Head First CChapter 3.Chapter 5 describes how numbers, letters, and other values are encoded,and presents the bitwise operators.Chapter 6 explains how to use dynamic memory management, and how itworks. Recommended reading:Head First CChapter 6.
Background image
Image of page 5

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture