IoT OSes: Contiki-NG Part 1. Luca Mottola
|
|
- Sabrina Wilkins
- 6 years ago
- Views:
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 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 informationIntroduction 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 informationArchitectures 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 informationPolitecnico 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 informationWSN 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 informationHands 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 informationLesson 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 informationCS 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 informationEE 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 informationStudy 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 informationEnabling 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 informationIntroduction 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 informationCS 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 informationRPL: 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 informationCS510 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 informationWireless 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 informationCS 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 informationMobile 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 informationSecure 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 informationThe 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 informationDefinition: 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 informationCS 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 informationAn 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 informationThe 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 informationRPL- 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 information13-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 informationLightweight, 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 informationICS 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 informationRouting 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 informationEnhancing 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 informationOCF 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 informationThreads. 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 informationMotivation 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 informationAnalysis 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 informationWireless 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 informationMotivation 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 informationThread. 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 informationIoT 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 informationCS333 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 informationProcesses. 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 informationW4118 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 informationCommon 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 informationLearning 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?
* 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 informationCS533 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 informationProcesses 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 informationns-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 informationDefinition 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 informationThreads 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 informationThreads 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 informationProblem 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 informationConcurrency. 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 informationCS510 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 informationSMD149 - 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 informationWhat 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 informationINTERNATIONAL 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 informationSpring 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 informationThreads 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 informationThe 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 informationWhat 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 informationComputer 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 informationCprE 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 informationProcesses 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 information0x0d2C 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 informationProgramming 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 informationCSE 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 informationProcesses (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 informationCPSC 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 informationThe 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 informationC 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 informationOptimizing 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 informationExercise (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 informationCSE506: 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 informationTCSS 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 informationCS 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 informationDesign 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 informationGroup 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 informationLecture 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 informationNAME: 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 informationAC 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 informationLecture 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 informationExceptional 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 informationProcesses. 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 informationThreads. 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 informationCSE398: 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 informationComputer 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 informationA 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 informationOperating 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 information518 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 informationProcesses (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 informationarxiv: 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 informationSpiNNaker 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 informationRF 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 informationCSE 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 informationContiki 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 informationProcess 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 informationChapter 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 informationCSC369 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 informationChapter 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 informationProblem 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