Book Image

Raspberry Pi Computer Architecture Essentials

By : Andrew K. Dennis, Teemu O Pohjanlehto
Book Image

Raspberry Pi Computer Architecture Essentials

By: Andrew K. Dennis, Teemu O Pohjanlehto

Overview of this book

With the release of the Raspberry Pi 2, a new series of the popular compact computer is available for you to build cheap, exciting projects and learn about programming. In this book, we explore Raspberry Pi 2’s hardware through a number of projects in a variety of programming languages. We will start by exploring the various hardware components in detail, which will provide a base for the programming projects and guide you through setting up the tools for Assembler, C/C++, and Python. We will then learn how to write multi-threaded applications and Raspberry Pi 2’s multi-core processor. Moving on, you’ll get hands on by expanding the storage options of the Raspberry Pi beyond the SD card and interacting with the graphics hardware. Furthermore, you will be introduced to the basics of sound programming while expanding upon your knowledge of Python to build a web server. Finally, you will learn to interact with the third-party microcontrollers. From writing your first Assembly Language application to programming graphics, this title guides you through the essentials.
Table of Contents (18 chapters)
Raspberry Pi Computer Architecture Essentials
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

What are threads?


In order to understand threads, it helps to understand what a process is first.

Within Linux, if you run the command ps you will see a list of processes running on the machine:

  PID TTY          TIME CMD
20215 pts/0    00:00:00 bash
20231 pts/0    00:00:00 ps

A process is a running instance of a program at a particular point in time. We can see in the example that both the ps command we typed and the bash shell is shown in the list.

Each process has a unique ID identifying it and has a number of other properties. These are:

  • System resources

  • Security attributes

  • Memory

  • Processor state

At any point in time multiple processes could be running that need access to the register in the CPU, for example. It is the job of the short-term scheduler to decide which process is to be executed.

A thread can be thought of as a sub-division of a process and is the smallest unit a scheduler will work with to allocate resources.

Just as the operating system can have multiple programs running and a...