IoT OSes: Contiki-NG Part 1. Luca Mottola

Size: px
Start display at page:

Download "IoT OSes: Contiki-NG Part 1. Luca Mottola"

Transcription

1 IoT OSes: Contiki-NG Part 1 Luca Mottola luca.mottola@polimi.it

2 Road-map Goals: Acquire concepts Immediately put them in practice Our target platform is Contiki-NG We use Contiki-NG as an opportunity to study how given concepts play out in practice Both using simulations and real hardware!

3 Contiki-NG Fork of original Contiki Focuses on RFC-compliant IPv6 networking Modern 32-bit platforms while keeping compatibility with a few 16-bit older ones Mature: almost 15 years of development up to now (including original Contiki) Key features: Configurability, ease of porting to new platforms Efficient, configurable IPv6-based networking Event-driven kernel, protothread concurrency model atop Small memory footprint Used both in academia and industry

4 Concurrency

5 Existing Models: Multi-thread Similar to multi-threading in C/C++ A subset of traditional synchronization primitives available Not many embedded OSes provide it RIoT, Contiki through external library, Pros: Familiar to programmers Facilitates porting non-embedded code Cons: Heavy on memory: each thread requires its own stack Difficult to tune: hard to anticipate every thread s max stack size

6 Existing Models: Event-driven Non-blocking calls and (possibly asynchronous) callbacks Provided by many ARM mbed, Contiki, Zephyr, Apache MyNewt Pros: Facilitates implementing reactive code Memory-efficient: only one stack Cons: Difficult to program: code as state machines, no sequential semantics

7 Event-driven: Example // Sensor interface: sensor.h void sensor_read(void (*callback)(error_t, val_t)); #include sensor.h void my_sensor_read_done(error_t err, val_t value) { // if ((err == OK) { do_something(value); void foo() { // do something sensor_read(&my_sensor_read_done); // do something more Calls sensor_read() The corresponding sensor.c is provided by sensor-specific implementations Application Sensor Calls (*callback)() If callbacks are asynchronous, the execution is preempted unless in an atomic block

8 Existing Models: Protothreads Best of both worlds Maintain sequential semantics with a single stack Provided in Contiki and Contiki-NG #include "contiki.h" #include <stdio.h> PROCESS(test_proc, "Test process"); AUTOSTART_PROCESSES(&test_proc); PROCESS_THREAD(test_proc, ev, data) { PROCESS_BEGIN(); printf("hello, world!\n"); PROCESS_END(); We will see later where displayed

9 Protothreads: Handling Events Protothreads process incoming events A timer expiring, a packet received They are scheduled cooperatively Individual protothreads decide when to release the MCU PROCESS_THREAD(test, ev, data) { static struct etimer et; PROCESS_BEGIN(); etimer_set(&et, CLOCK_SECOND); /* Trigger a 1s timer */ for(;;) { PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); printf("hello, world!\n");= etimer_set(&et, CLOCK_SECOND); PROCESS_END(); Set a new timer, triggering the next event for this protothread Every time the protothread resumes, this condition is checked

10

11 Exercise Add a counter to hello-world-events so that the timer stops when it reaches a threshold

12 Protothreads: Implementation Uses local continuations as result of macro expansion When set, allow one to tag specific places in the code When resumed, allow the execution to restart from within the code Use of macros spares the need for a dedicated preprocessor

13 Protothreads: Implementation PROCESS_THREAD(test, ev, data) { static struct etimer et; PROCESS_BEGIN(); etimer_set(&et, CLOCK_SECOND); for(;;) { PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); printf("hello, world!\n");= etimer_set(&et, CLOCK_SECOND); PROCESS_END(); static char test (struct pt* pt, event_t ev, void* data) { static struct etimer et; switch(pt->lc) { case 0: etimer_set(&et, CLOCK_SECOND); for(;;) { pt->lc = 15; case 15: if (!(etimer_expired(&et)) { return 0; printf("hello, world!\n"); etimer_set(&et, CLOCK_SECOND) pt->lc = 0; return 2; What really happens when resuming: The protothread function is called again, and starts over A switch statement reads the value of pt->lc The execution jumps to the case: corresponding to where the execution yielded Therefore, local variables need to be static, or they get re-initialized every time the protothread resumes No free lunches: they consume memory also when the protothread is not executing! Do not use switch inside protothreads, or you will mess things up

14 Protothreads: APIs PROCESS_PAUSE(): releases control, rescheduled immediately PROCESS_YIELD(): releases control, wait for next event process_poll(&process_name): polls another protothread PROCESS_EXIT(): stops a protothread process_exit(&process_name): kills another protothread

15 Contiki-NG Timers timer: require to manually check if timers have expired etimer: generates events when timers expire, useful with protothreads stimer: like etimer for longer periods ctimer: allows one to schedule function executions in time rtimer: preempts currently running functions with given callbacks As a result, provides predictable timer semantics

16 Networking

17 Routing: RPL (1) Creates a tree-shaped topology rooted at the node with direct Internet access Destination-Oriented Directed Acyclic Graph (DODAG) Naturally supports many-to-one communication Packets called DODAG Information Objects (DIO) disseminated downwards from the root Carry information on what objective function to use to select the parent in the tree Every node has a preferred parent and might have multiple backup parents

18 Routing: RPL (2) Objective functions in Contiki-NG OF0: looks for a good-enough potential parent and a back-up one; simple but might be inefficient and yield unstable routes MRHOF: looks for the minimum rank among potential parents and applies histerisis to avoid flipping between parents; more efficient provided good connectivity

19 Routing: RPL (3) To support one-to-many and one-toone communication, every node advertises itself upwards with Destination Advertisement Objects (DAO) In storing mode, every intermediate node builds local routes for downstream nodes Allows routes to shortcut paths at the first common parent Might be heavy on memory In non-storing mode, only the root stores downstream routes Point-to-point routes necessarily stretch up to the route The root typically has memory

20 UDP over RPL: API struct simple_udp_connection { struct simple_udp_connection *next; uip_ipaddr_t remote_addr; uint16_t remote_port, local_port; simple_udp_callback receive_callback; struct uip_udp_conn *udp_conn; struct process *client_process; ; Represents a UDP connection Executed for incoming packets typedef void (* simple_udp_callback) (struct simple_udp_connection *c, const uip_ipaddr_t *source_addr, uint16_t source_port, const uip_ipaddr_t *dest_addr, uint16_t dest_port, const uint8_t *data, uint16_t datalen); Receive callback signature

21 UDP over RPL: API Initializes UDP layer void simple_udp_init(void); Setup a UDP connection int simple_udp_register(struct simple_udp_connection *c, uint16_t local_port, uip_ipaddr_t *remote_addr, uint16_t remote_port, simple_udp_callback receive_callback); int simple_udp_sendto(struct simple_udp_connection *c, const void *data, uint16_t datalen, const uip_ipaddr_t *to); Send a packet to a specific destination, if the UDP connection is setup with NULL as remote-addr

22 UDP over RPL: Example No remote address simple_udp_register(&udp_conn, UDP_CLIENT_PORT, NULL, UDP_SERVER_PORT, udp_rx_callback); etimer_set(&periodic_timer, random_rand() % SEND_INTERVAL); while(1) { PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&periodic_timer)); if(rpl_is_reachable()) { rpl_dag_t *dag = rpl_get_any_dag(); if(dag!= NULL) { /* Only a sanity check. */ LOG_INFO("Sending request %u to ", count); LOG_INFO_6ADDR(&dag->dag_id); LOG_INFO_("\n"); simple_udp_sendto(&udp_conn, &count, sizeof(count), &dag->dag_id); count++; else { LOG_INFO("Not reachable yet %p\n", rpl_get_any_dag()); Send to the DODAG root Send the value of count

23

24 Exercise Modify udp-server and udp-client so that two nodes ping-pong for a certain number of times If a packet is lost, one of the two restarts from scratch

25 Homework Check on the Contiki wiki: Build system: Logging system:

IoT OSes: Contiki-NG Part 3. Luca Mottola

IoT OSes: Contiki-NG Part 3. Luca Mottola IoT OSes: Contiki-NG Part 3 Luca Mottola luca.mottola@polimi.it Radio Duty-cycling and Energest Duty-cycling in MACs (1) Asynchronous, sender-initiated X-MAC, ContikiMAC, Burden on the sender Asynchronous,

More information

Introduction to Contiki Kristof Van Laerhoven, Embedded Systems, Uni Freiburg

Introduction to Contiki Kristof Van Laerhoven, Embedded Systems, Uni Freiburg Kristof Van Laerhoven, Embedded Systems, Uni Freiburg kristof@ese.uni-freiburg.de Contiki Operating System ê memory-efficient: 2 kb RAM, 40 kb ROM typically* ê provides IP support (its uipv6 stack is IPv6

More information

Architectures and Applications for Wireless Sensor Networks ( ) Node Programming

Architectures and Applications for Wireless Sensor Networks ( ) Node Programming Architectures and Applications for Wireless Sensor Networks (01204525) Node Programming Chaiporn Jaikaeo chaiporn.j@ku.ac.th Department of Computer Engineering Kasetsart University Outline Microcontroller

More information

Politecnico di Milano Advanced Network Technologies Laboratory. Internet of Things. Contiki and Cooja

Politecnico di Milano Advanced Network Technologies Laboratory. Internet of Things. Contiki and Cooja Politecnico di Milano Advanced Network Technologies Laboratory Internet of Things Contiki and Cooja Politecnico di Milano Advanced Network Technologies Laboratory The Contiki Operating System Contiki Contiki

More information

WSN Programming: From Abstractions To Running Code

WSN Programming: From Abstractions To Running Code WSN Programming: From Abstractions To Running Code Luca Mottola www.sics.se/~luca Principles of Wireless Sensor Networks, KTH, September 14 th, 2009 A part of Swedish ICT WSN Programming Ease of programming

More information

Hands on Contiki OS and Cooja Simulator (Part I)

Hands on Contiki OS and Cooja Simulator (Part I) Hands on Contiki OS and Cooja Simulator (Part I) Ing. Pietro Gonizzi Wireless Ad-hoc Sensor Network Laboratory(WASNLab), University of Parma pietro.gonizzi@studenti.unipr.it Dr. Simon Duquennoy Swedish

More information

Lesson 4 RPL and 6LoWPAN Protocols. Chapter-4 L04: "Internet of Things ", Raj Kamal, Publs.: McGraw-Hill Education

Lesson 4 RPL and 6LoWPAN Protocols. Chapter-4 L04: Internet of Things , Raj Kamal, Publs.: McGraw-Hill Education Lesson 4 RPL and 6LoWPAN Protocols 1 RPL [Ipv6 Routing Protocol For Low Power Lossy Networks (LLNs)] 2 LLN A constrained nodes network Low data transfer rate Low packet delivery rate in comparison to IP

More information

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University CS 333 Introduction to Operating Systems Class 3 Threads & Concurrency Jonathan Walpole Computer Science Portland State University 1 The Process Concept 2 The Process Concept Process a program in execution

More information

EE 579: Wireless and Mobile Networks Design & Laboratory. Lecture 7

EE 579: Wireless and Mobile Networks Design & Laboratory. Lecture 7 EE 579: Wireless and Mobile Networks Design & Laboratory Lecture 7 Amitabha Ghosh Department of Electrical Engineering USC, Spring 2014 Lecture notes and course design based upon prior semesters taught

More information

Study of RPL DODAG Version Attacks

Study of RPL DODAG Version Attacks Study of RPL DODAG Version Attacks Anthéa Mayzaud anthea.mayzaud@inria.fr Rémi Badonnel Isabelle Chrisment Anuj Sehgal s.anuj@jacobs-university.de Jürgen Schönwälder IFIP AIMS 2014 Brno, Czech Republik

More information

Enabling IoT OSs for Intel Quark MCU Platforms: the fast way. OpenIoT Summit Europe Andre Guedes

Enabling IoT OSs for Intel Quark MCU Platforms: the fast way. OpenIoT Summit Europe Andre Guedes Enabling IoT OSs for Intel Quark MCU Platforms: the fast way OpenIoT Summit Europe Andre Guedes 1 Agenda Intel Quark MCU Platforms Intel Quark Microcontroller Software Interface (QMSI) Zephyr/QMSI Integration

More information

Introduction to wireless sensor networks with 6LoWPAN and Contiki

Introduction to wireless sensor networks with 6LoWPAN and Contiki FACULTEIT INGENIEURSWETENSCHAPPEN Introduction to wireless sensor networks with 6LoWPAN and Contiki COST AAPELE Castres - France 2015-06-30 Laurent Segers Contents 1 Instant Contiki 4 1.1 Zolertia Z1 platform..............................

More information

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University CS 333 Introduction to Operating Systems Class 3 Threads & Concurrency Jonathan Walpole Computer Science Portland State University 1 Process creation in UNIX All processes have a unique process id getpid(),

More information

RPL: Routing for IoT. Bardh Prenkaj Dept. of Computer Science. Internet of Things A.A

RPL: Routing for IoT. Bardh Prenkaj Dept. of Computer Science. Internet of Things A.A RPL: Routing for IoT Bardh Prenkaj Dept. of Computer Science Internet of Things A.A. 17-18 1 Overview Protocol scenario description Design principles of the protocol Fundamental terminology to understand

More information

CS510 Operating System Foundations. Jonathan Walpole

CS510 Operating System Foundations. Jonathan Walpole CS510 Operating System Foundations Jonathan Walpole The Process Concept 2 The Process Concept Process a program in execution Program - description of how to perform an activity instructions and static

More information

Wireless Sensor Networks (WSN)

Wireless Sensor Networks (WSN) Wireless Sensor Networks (WSN) Operating Systems M. Schölzel Operating System Tasks Traditional OS Controlling and protecting access to resources (memory, I/O, computing resources) managing their allocation

More information

CS 318 Principles of Operating Systems

CS 318 Principles of Operating Systems CS 318 Principles of Operating Systems Fall 2017 Lecture 5: Thread Ryan Huang Administrivia HW1 solution released on Piazza resources Lab 0 grading - In progress - Cheating policy Lab 1 review session

More information

Mobile Communications

Mobile Communications Mobile Communications Wireless Personal Area Networks Manuel P. Ricardo Faculdade de Engenharia da Universidade do Porto 1 IEEE Standards 2 IEEE 802.15.4 Wireless PAN (Sensor Networks) 3 Information Current

More information

Secure routing in IoT networks with SISLOF

Secure routing in IoT networks with SISLOF Secure routing in IoT networks with SISLOF Ayman El Hajjar 1,, George Roussos 1, Maura Paterson 2 1 Department of Computer science and Information systems 2 Department of Economics, Mathematics and Statistics

More information

The Process Abstraction. CMPU 334 Operating Systems Jason Waterman

The Process Abstraction. CMPU 334 Operating Systems Jason Waterman The Process Abstraction CMPU 334 Operating Systems Jason Waterman How to Provide the Illusion of Many CPUs? Goal: run N processes at once even though there are M CPUs N >> M CPU virtualizing The OS can

More information

Definition: An operating system is the software that manages resources

Definition: An operating system is the software that manages resources 13-1 Operating Systems 13-1 Definition: An operating system is the software that manages resources in a computer. Resources A resource is (usually) hardware that needs to be accessed. There are rules for

More information

CS 318 Principles of Operating Systems

CS 318 Principles of Operating Systems CS 318 Principles of Operating Systems Fall 2018 Lecture 5: Thread Ryan Huang Slides adapted from Geoff Voelker s and David Mazières lectures Administrivia Lab 0 grading in progress Lab 1 review session

More information

An Algorithm for Timely Transmission of Solicitation Messages in RPL for Energy-Efficient Node Mobility

An Algorithm for Timely Transmission of Solicitation Messages in RPL for Energy-Efficient Node Mobility sensors Article An Algorithm for Timely Transmission of Solicitation Messages in RPL for Energy-Efficient Node Mobility Jihong Park 1, Ki-Hyung Kim 2 and Kangseok Kim 2, * 1 Department of Computer Engineering,

More information

The Kernel Abstraction. Chapter 2 OSPP Part I

The Kernel Abstraction. Chapter 2 OSPP Part I The Kernel Abstraction Chapter 2 OSPP Part I Kernel The software component that controls the hardware directly, and implements the core privileged OS functions. Modern hardware has features that allow

More information

RPL- Routing over Low Power and Lossy Networks

RPL- Routing over Low Power and Lossy Networks RPL- Routing over Low Power and Lossy Networks Michael Richardson Ines Robles IETF 94 Questions to answers today 1. What is a low power/lossy network? How does that relate to IoT? 2. What is RPL and how

More information

13-2 EE 4770 Lecture Transparency. Formatted 8:18, 13 March 1998 from lsli

13-2 EE 4770 Lecture Transparency. Formatted 8:18, 13 March 1998 from lsli 13-1 13-1 Operating Systems Definition: An operating system is the software that manages resources in a computer. Resources A resource is (usually) hardware that needs to be accessed. There are rules for

More information

Lightweight, Low-Power IP

Lightweight, Low-Power IP Lightweight, Low-Power IP Adam Dunkels, PhD Swedish Institute of Computer Science adam@sics.se 1A part of Swedish ICT Adam Dunkels IP is lightweight The Message but weight has performance implications

More information

ICS 351: Today's plan. distance-vector routing game link-state routing OSPF

ICS 351: Today's plan. distance-vector routing game link-state routing OSPF ICS 351: Today's plan distance-vector routing game link-state routing OSPF distance-vector routing game 1. prepare a list of all neighbors and the links to them, and the metric for each link 2. create

More information

Routing in the Internet of Things (IoT) Rolland Vida Convergent Networks and Services

Routing in the Internet of Things (IoT) Rolland Vida Convergent Networks and Services Routing in the Internet of Things (IoT) Rolland Vida Convergent Networks and Services Spring 05. IoT challenges IoT nodes are heterogeneous Some have important resources Smart phones, cars, coke machines

More information

Enhancing Routing Protocol for Low Power and Lossy Networks

Enhancing Routing Protocol for Low Power and Lossy Networks Enhancing Routing Protocol for Low Power and Lossy Networks John Abied Hatem, Haidar Safa, and Wassim El-Hajj Department of Computer Science American University of Beirut Beirut, Lebanon Email: jmh8@mail.aub.edu;

More information

OCF for resource-constrained environments

OCF for resource-constrained environments October 11 13, 2016 Berlin, Germany OCF for resource-constrained environments Kishen Maloor, Intel 1 Outline Introduction Brief background in OCF Core Constrained environment charactertics IoTivity-Constrained

More information

Threads. What is a thread? Motivation. Single and Multithreaded Processes. Benefits

Threads. What is a thread? Motivation. Single and Multithreaded Processes. Benefits CS307 What is a thread? Threads A thread is a basic unit of CPU utilization contains a thread ID, a program counter, a register set, and a stack shares with other threads belonging to the same process

More information

Motivation was to facilitate development of systems software, especially OS development.

Motivation was to facilitate development of systems software, especially OS development. A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.

More information

Analysis and Enhancement of RPL under Packet Drop Attacks

Analysis and Enhancement of RPL under Packet Drop Attacks Analysis and Enhancement of RPL under Packet Drop Attacks Binbin Chen, Yuan Li, Daisuke Mashima Advanced Digital Sciences Center COMSNETS 2018, Jan 3 7, Bangalore, India 1 RPL and AMI RFC6550: RPL: IPv6

More information

Wireless Sensor Networks Module 2: Routing

Wireless Sensor Networks Module 2: Routing Wireless Sensor Networks Module 2: Routing Dr.-Ing. Koojana Kuladinithi, TZI, University of Bremen koo@comnets.uni-bremen.de Contents Module 2: Routing in WSNs Introduction L2 Forwarding (Mesh-Under) vs

More information

Motivation was to facilitate development of systems software, especially OS development.

Motivation was to facilitate development of systems software, especially OS development. A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.

More information

Thread. Disclaimer: some slides are adopted from the book authors slides with permission 1

Thread. Disclaimer: some slides are adopted from the book authors slides with permission 1 Thread Disclaimer: some slides are adopted from the book authors slides with permission 1 IPC Shared memory Recap share a memory region between processes read or write to the shared memory region fast

More information

IoT Roadmap in the IETF. Ines Robles

IoT Roadmap in the IETF. Ines Robles IoT Roadmap in the IETF Ines Robles 2016 Agenda IETF and IoT Definitions IETF IoT WGs Internet Area: 6lo, 6tisch, lpwan, lwig Routing Area: ROLL Application and Real Time Area: core Security Area: ace

More information

CS333 Intro to Operating Systems. Jonathan Walpole

CS333 Intro to Operating Systems. Jonathan Walpole CS333 Intro to Operating Systems Jonathan Walpole Threads & Concurrency 2 Threads Processes have the following components: - an address space - a collection of operating system state - a CPU context or

More information

Processes. Process Concept

Processes. Process Concept Processes These slides are created by Dr. Huang of George Mason University. Students registered in Dr. Huang s courses at GMU can make a single machine readable copy and print a single copy of each slide

More information

W4118 Operating Systems. Junfeng Yang

W4118 Operating Systems. Junfeng Yang W4118 Operating Systems Junfeng Yang What is a process? Outline Process dispatching Common process operations Inter-process Communication What is a process Program in execution virtual CPU Process: an

More information

Common Computer-System and OS Structures

Common Computer-System and OS Structures Common Computer-System and OS Structures Computer System Operation I/O Structure Storage Structure Storage Hierarchy Hardware Protection General System Architecture Oct-03 1 Computer-System Architecture

More information

Learning Outcomes. Processes and Threads Implementation. Processes Process s user-level stack and execution state. Threads The Thread Model.

Learning Outcomes. Processes and Threads Implementation. Processes Process s user-level stack and execution state. Threads The Thread Model. Processes and Threads Implementation Learning Outcomes An understanding of the typical implementation strategies of processes and threads Including an appreciation of the trade-offs between the implementation

More information

* What are the different states for a task in an OS?

* What are the different states for a task in an OS? * Kernel, Services, Libraries, Application: define the 4 terms, and their roles. The kernel is a computer program that manages input/output requests from software, and translates them into data processing

More information

CS533 Concepts of Operating Systems. Jonathan Walpole

CS533 Concepts of Operating Systems. Jonathan Walpole CS533 Concepts of Operating Systems Jonathan Walpole Introduction to Threads and Concurrency Why is Concurrency Important? Why study threads and concurrent programming in an OS class? What is a thread?

More information

Processes and Threads Implementation

Processes and Threads Implementation Processes and Threads Implementation 1 Learning Outcomes An understanding of the typical implementation strategies of processes and threads Including an appreciation of the trade-offs between the implementation

More information

ns-3 RPL module: IPv6 Routing Protocol for Low power and Lossy Networks

ns-3 RPL module: IPv6 Routing Protocol for Low power and Lossy Networks ns-3 RPL module: IPv6 Routing Protocol for Low power and Lossy Networks Lorenzo Bartolozzi Tommaso Pecorella Romano Fantacci Università degli Studi di Firenze Wns3 2012, March 23, Desenzano, Italy. This

More information

Definition Multithreading Models Threading Issues Pthreads (Unix)

Definition Multithreading Models Threading Issues Pthreads (Unix) Chapter 4: Threads Definition Multithreading Models Threading Issues Pthreads (Unix) Solaris 2 Threads Windows 2000 Threads Linux Threads Java Threads 1 Thread A Unix process (heavy-weight process HWP)

More information

Threads and Concurrency

Threads and Concurrency Threads and Concurrency 1 Threads and Concurrency key concepts threads, concurrent execution, timesharing, context switch, interrupts, preemption reading Three Easy Pieces: Chapter 26 (Concurrency and

More information

Threads and Concurrency

Threads and Concurrency Threads and Concurrency 1 Threads and Concurrency key concepts threads, concurrent execution, timesharing, context switch, interrupts, preemption reading Three Easy Pieces: Chapter 26 (Concurrency and

More information

Problem Set: Processes

Problem Set: Processes Lecture Notes on Operating Systems Problem Set: Processes 1. Answer yes/no, and provide a brief explanation. (a) Can two processes be concurrently executing the same program executable? (b) Can two running

More information

Concurrency. Johan Montelius KTH

Concurrency. Johan Montelius KTH Concurrency Johan Montelius KTH 2017 1 / 32 What is concurrency? 2 / 32 What is concurrency? Concurrency: (the illusion of) happening at the same time. 2 / 32 What is concurrency? Concurrency: (the illusion

More information

CS510 Operating System Foundations. Jonathan Walpole

CS510 Operating System Foundations. Jonathan Walpole CS510 Operating System Foundations Jonathan Walpole Threads & Concurrency 2 Why Use Threads? Utilize multiple CPU s concurrently Low cost communication via shared memory Overlap computation and blocking

More information

SMD149 - Operating Systems

SMD149 - Operating Systems SMD149 - Operating Systems Roland Parviainen November 3, 2005 1 / 45 Outline Overview 2 / 45 Process (tasks) are necessary for concurrency Instance of a program in execution Next invocation of the program

More information

What is concurrency? Concurrency. What is parallelism? concurrency vs parallelism. Concurrency: (the illusion of) happening at the same time.

What is concurrency? Concurrency. What is parallelism? concurrency vs parallelism. Concurrency: (the illusion of) happening at the same time. What is concurrency? Concurrency Johan Montelius KTH 2017 Concurrency: (the illusion of) happening at the same time. A property of the programing model. Why would we want to do things concurrently? What

More information

INTERNATIONAL JOURNAL OF COMMUNICATIONS Volume 12, Performance comparative analysis of LOADing-CTP and RPL routing protocols for LLNs

INTERNATIONAL JOURNAL OF COMMUNICATIONS Volume 12, Performance comparative analysis of LOADing-CTP and RPL routing protocols for LLNs Performance comparative analysis of LOADing-CTP and routing protocols for LLNs Belghachi Mohammed, Feham Mohamed Abstract Low Power and Lossy Networks (LLNs) represent one of the interesting research areas

More information

Spring CS 170 Exercise Set 1 (Updated with Part III)

Spring CS 170 Exercise Set 1 (Updated with Part III) Spring 2015. CS 170 Exercise Set 1 (Updated with Part III) Due on May 5 Tuesday 12:30pm. Submit to the CS170 homework box or bring to the classroom. Additional problems will be added as we cover more topics

More information

Threads Tuesday, September 28, :37 AM

Threads Tuesday, September 28, :37 AM Threads_and_fabrics Page 1 Threads Tuesday, September 28, 2004 10:37 AM Threads A process includes an execution context containing Memory map PC and register values. Switching between memory maps can take

More information

The P2P-RPL Routing Protocol for IPv6 Sensor Networks: Testbed Experiments

The P2P-RPL Routing Protocol for IPv6 Sensor Networks: Testbed Experiments The P2P-RPL Routing Protocol for IPv6 Sensor Networks: Testbed Experiments Emmanuel Baccelli, Matthias Philipp INRIA Saclay, France E-mail: name.lastname@inria.fr Mukul Goyal UWM, USA E-mail: mukul@uwm.edu

More information

What Is A Process? Process States. Process Concept. Process Control Block (PCB) Process State Transition Diagram 9/6/2013. Process Fundamentals

What Is A Process? Process States. Process Concept. Process Control Block (PCB) Process State Transition Diagram 9/6/2013. Process Fundamentals What Is A Process? A process is a program in execution. Process Fundamentals #include int main(int argc, char*argv[]) { int v; printf( hello world\n ); scanf( %d, &v); return 0; Program test

More information

Computer Systems II. First Two Major Computer System Evolution Steps

Computer Systems II. First Two Major Computer System Evolution Steps Computer Systems II Introduction to Processes 1 First Two Major Computer System Evolution Steps Led to the idea of multiprogramming (multiple concurrent processes) 2 1 At First (1945 1955) In the beginning,

More information

CprE 288 Introduction to Embedded Systems Exam 1 Review. 1

CprE 288 Introduction to Embedded Systems Exam 1 Review.  1 CprE 288 Introduction to Embedded Systems Exam 1 Review http://class.ece.iastate.edu/cpre288 1 Overview of Today s Lecture Announcements Exam 1 Review http://class.ece.iastate.edu/cpre288 2 Announcements

More information

Processes and Threads Implementation

Processes and Threads Implementation Processes and Threads Implementation 1 Learning Outcomes An understanding of the typical implementation strategies of processes and threads Including an appreciation of the trade-offs between the implementation

More information

0x0d2C May your signals all trap May your references be bounded All memory aligned Floats to ints round. remember...

0x0d2C May your signals all trap May your references be bounded All memory aligned Floats to ints round. remember... Types Page 1 "ode to C" Monday, September 18, 2006 4:09 PM 0x0d2C ------ May your signals all trap May your references be bounded All memory aligned Floats to ints round remember... Non -zero is true ++

More information

Programming in C - Part 2

Programming in C - Part 2 Programming in C - Part 2 CPSC 457 Mohammad Reza Zakerinasab May 11, 2016 These slides are forked from slides created by Mike Clark Where to find these slides and related source code? http://goo.gl/k1qixb

More information

CSE 120 Principles of Operating Systems

CSE 120 Principles of Operating Systems CSE 120 Principles of Operating Systems Spring 2009 Lecture 4: Threads Geoffrey M. Voelker Announcements Homework #1 due now Project 0 due tonight Project 1 out April 9, 2009 CSE 120 Lecture 4 Threads

More information

Processes (Intro) Yannis Smaragdakis, U. Athens

Processes (Intro) Yannis Smaragdakis, U. Athens Processes (Intro) Yannis Smaragdakis, U. Athens Process: CPU Virtualization Process = Program, instantiated has memory, code, current state What kind of memory do we have? registers + address space Let's

More information

CPSC 341 OS & Networks. Threads. Dr. Yingwu Zhu

CPSC 341 OS & Networks. Threads. Dr. Yingwu Zhu CPSC 341 OS & Networks Threads Dr. Yingwu Zhu Processes Recall that a process includes many things An address space (defining all the code and data pages) OS resources (e.g., open files) and accounting

More information

The friendly operating system for the IoT!

The friendly operating system for the IoT! The friendly operating system for the IoT! www.riot-os.org AGENDA Internet of Things: Which OS? RIOT in a nutshell RIOT user and developer evolution Roadmap www.riot-os.org 2 The Internet of Things (IoT)

More information

C Review. MaxMSP Developers Workshop Summer 2009 CNMAT

C Review. MaxMSP Developers Workshop Summer 2009 CNMAT C Review MaxMSP Developers Workshop Summer 2009 CNMAT C Syntax Program control (loops, branches): Function calls Math: +, -, *, /, ++, -- Variables, types, structures, assignment Pointers and memory (***

More information

Optimizing Routing Protocol for Low power and Lossy Network (RPL) Objective Function for Mobile Low-Power Wireless Networks

Optimizing Routing Protocol for Low power and Lossy Network (RPL) Objective Function for Mobile Low-Power Wireless Networks Optimizing Routing Protocol for Low power and Lossy Network (RPL) Objective Function for Mobile Low-Power Wireless Networks Mälardalens Högskola Akademin för Innovation, Design och Teknik Författarnamn

More information

Exercise (could be a quiz) Solution. Concurrent Programming. Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - IV Threads

Exercise (could be a quiz) Solution. Concurrent Programming. Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - IV Threads Exercise (could be a quiz) 1 2 Solution CSE 421/521 - Operating Systems Fall 2013 Lecture - IV Threads Tevfik Koşar 3 University at Buffalo September 12 th, 2013 4 Roadmap Threads Why do we need them?

More information

CSE506: Operating Systems CSE 506: Operating Systems

CSE506: Operating Systems CSE 506: Operating Systems CSE 506: Operating Systems What Software Expects of the OS What Software Expects of the OS Shell Memory Address Space for Process System Calls System Services Launching Program Executables Shell Gives

More information

TCSS 422: OPERATING SYSTEMS

TCSS 422: OPERATING SYSTEMS TCSS 422: OPERATING SYSTEMS fork() Process API, Limited Direct Execution Wes J. Lloyd Institute of Technology University of Washington - Tacoma Creates a new process - think of a fork in the road Parent

More information

CS 475. Process = Address space + one thread of control Concurrent program = multiple threads of control

CS 475. Process = Address space + one thread of control Concurrent program = multiple threads of control Processes & Threads Concurrent Programs Process = Address space + one thread of control Concurrent program = multiple threads of control Multiple single-threaded processes Multi-threaded process 2 1 Concurrent

More information

Design and Analysis of Routing Protocol for IPv6 Wireless Sensor Networks

Design and Analysis of Routing Protocol for IPv6 Wireless Sensor Networks Design and Analysis of Routing Protocol for IPv6 Wireless Sensor Networks Elias Wendm Atalay Supervisor Prof. Enzo Mingozzi Supervisor Prof. Giuseppe Anastasi Co- Supervisor Dott. Carlo Vallati A thesis

More information

Group Members: Chetan Fegade Nikhil Mascarenhas. Mentor: Dr. Yann Hang Lee

Group Members: Chetan Fegade Nikhil Mascarenhas. Mentor: Dr. Yann Hang Lee Group Members: Chetan Fegade Nikhil Mascarenhas Mentor: Dr. Yann Hang Lee 1. Introduction 2. TinyGALS programming model 3. TinyOS 4. NesC 5. Middleware 6. Conclusion 7. References 8. Q & A Event driven

More information

Lecture 2 Process Management

Lecture 2 Process Management Lecture 2 Process Management Process Concept An operating system executes a variety of programs: Batch system jobs Time-shared systems user programs or tasks The terms job and process may be interchangeable

More information

NAME: KEY (FIRST NAME FIRST) TOTAL:

NAME: KEY (FIRST NAME FIRST) TOTAL: NAME: KEY (FIRST NAME FIRST) TOTAL: COSC 3360/6310 FIRST QUIZ FEBRUARY 22, 2016 This exam is closed book. You can have one page of notes. UH expels cheaters. 1. Match each of the following features with

More information

AC OB S. Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014

AC OB S. Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014 AC OB S Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014 ACOBS ACtive OBject (operating) System Simplified FW System for Multi-Threading on ARM embedded systems ACOBS

More information

Lecture 4: Threads; weaving control flow

Lecture 4: Threads; weaving control flow Lecture 4: Threads; weaving control flow CSE 120: Principles of Operating Systems Alex C. Snoeren HW 1 Due NOW Announcements Homework #1 due now Project 0 due tonight Project groups Please send project

More information

Exceptional Control Flow Part I

Exceptional Control Flow Part I Exceptional Control Flow Part I Today! Exceptions! Process context switches! Creating and destroying processes Next time! Signals, non-local jumps, Fabián E. Bustamante, 2007 Control flow! Computers do

More information

Processes. Johan Montelius KTH

Processes. Johan Montelius KTH Processes Johan Montelius KTH 2017 1 / 47 A process What is a process?... a computation a program i.e. a sequence of operations a set of data structures a set of registers means to interact with other

More information

Threads. Raju Pandey Department of Computer Sciences University of California, Davis Spring 2011

Threads. Raju Pandey Department of Computer Sciences University of California, Davis Spring 2011 Threads Raju Pandey Department of Computer Sciences University of California, Davis Spring 2011 Threads Effectiveness of parallel computing depends on the performance of the primitives used to express

More information

CSE398: Network Systems Design

CSE398: Network Systems Design CSE398: Network Systems Design Instructor: Dr. Liang Cheng Department of Computer Science and Engineering P.C. Rossin College of Engineering & Applied Science Lehigh University February 23, 2005 Outline

More information

Computer Architecture

Computer Architecture Jens Teubner Computer Architecture Summer 2016 1 Computer Architecture Jens Teubner, TU Dortmund jens.teubner@cs.tu-dortmund.de Summer 2016 Jens Teubner Computer Architecture Summer 2016 2 Part I Programming

More information

A process. the stack

A process. the stack A process Processes Johan Montelius What is a process?... a computation KTH 2017 a program i.e. a sequence of operations a set of data structures a set of registers means to interact with other processes

More information

Operating Systems 2010/2011

Operating Systems 2010/2011 Operating Systems 2010/2011 Input/Output Systems part 1 (ch13) Shudong Chen 1 Objectives Discuss the principles of I/O hardware and its complexity Explore the structure of an operating system s I/O subsystem

More information

518 Lecture Notes Week 3

518 Lecture Notes Week 3 518 Lecture Notes Week 3 (Sept. 15, 2014) 1/8 518 Lecture Notes Week 3 1 Topics Process management Process creation with fork() Overlaying an existing process with exec Notes on Lab 3 2 Process management

More information

Processes (Tasks) and operating systems. Why multiple processes? Example: engine control

Processes (Tasks) and operating systems. Why multiple processes? Example: engine control Processes (Tasks) and operating systems Motivation for processes. The process abstraction. Context switching. Multitasking. Processes and UML. Operating systems Why multiple processes? Processes help us

More information

arxiv: v1 [cs.ni] 8 Jun 2016

arxiv: v1 [cs.ni] 8 Jun 2016 RESEARCH ARTICLE MHCL: IPv6 Multihop Host Configuration for Low-Power Wireless Networks Bruna S. Peres and Olga Goussevskaia arxiv:66.2674v [cs.ni] 8 Jun 26 Department of Computer Science, Universidade

More information

SpiNNaker Application Programming Interface (API)

SpiNNaker Application Programming Interface (API) SpiNNaker Application Programming Interface (API) Version 2.0.0 10 March 2016 Application programming interface (API) Event-driven programming model The SpiNNaker API programming model is a simple, event-driven

More information

RF and network basics. Antonio Liñán Colina

RF and network basics. Antonio Liñán Colina RF and network basics Antonio Liñán Colina Architectures: 8-bit, 16-bit, 32-bit Open Source (source code openly available) IPv4/IPv6/Rime networking Devices with < 8KB RAM Typical applications < 50KB Flash

More information

CSE 120 Principles of Operating Systems

CSE 120 Principles of Operating Systems CSE 120 Principles of Operating Systems Fall 2015 Lecture 4: Threads Geoffrey M. Voelker Announcements Project 0 due Project 1 out October 6, 2015 CSE 120 Lecture 4 Threads 2 Processes Recall that a process

More information

Contiki a Lightweight and Flexible Operating System for Tiny Networked Sensors

Contiki a Lightweight and Flexible Operating System for Tiny Networked Sensors Contiki a Lightweight and Flexible Operating System for Tiny Networked Sensors Adam Dunkels, Björn Grönvall, Thiemo Voigt Swedish Institute of Computer Science IEEE EmNetS-I, 16 November 2004 Sensor OS

More information

Process Characteristics

Process Characteristics Threads 1 Chapter 4 2 Process Characteristics We ve mentioned a process as having two characteristics Unit of resource ownership: processes have their own dedicated memory address space processes temporarily

More information

Chapter 4: Processes. Process Concept

Chapter 4: Processes. Process Concept Chapter 4: Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Silberschatz, Galvin and Gagne

More information

CSC369 Lecture 2. Larry Zhang

CSC369 Lecture 2. Larry Zhang CSC369 Lecture 2 Larry Zhang 1 Announcements Lecture slides Midterm timing issue Assignment 1 will be out soon! Start early, and ask questions. We will have bonus for groups that finish early. 2 Assignment

More information

Chapter 4: Processes

Chapter 4: Processes Chapter 4: Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Process Concept An operating

More information

Problem Set: Processes

Problem Set: Processes Lecture Notes on Operating Systems Problem Set: Processes 1. Answer yes/no, and provide a brief explanation. (a) Can two processes be concurrently executing the same program executable? (b) Can two running

More information