Please enable JavaScript.
Coggle requires JavaScript to display documents.
CMPT432 Presentations (Networking for IoT Operating Systems Alita &…
CMPT432 Presentations
Networking for IoT Operating Systems
Alita & Carl
Internet of Things
Millions of embedded devices connected to the internet
Potential to communicate with each other
IoT Operating System
Riot
Contiki OS
Zephyr
Design Goals
Low resource usage
Low power requirements
IPv6 for larger address spaces
Use embedded microcontrollers, not servers
Scheduling in Distributed Systems
Rashid
Monolithic Scheduler
Observe resources, made decisions, lock resources, schedule, update resources
Easy to design and understand :heavy_check_mark:
No concurrency :heavy_multiplication_x:
Two-level Scheduler
Separates ideas of resource allocation and task placement
Allows multiprogramming :heavy_check_mark:
Pessimistic concurrency control :heavy_multiplication_x:
Shared-state Scheduler
No central resource allocater; allocation decisions in scheduler
Optimistic concurrency control :heavy_check_mark:
Fairness not guaranteed :heavy_multiplication_x:
Operating Systems for Wireless Sensor Networks
Fadi
TinyOS
Flexible OS for resource-constrained devices
Small memory footprint
Contiki OS
Dynamic memory (allocate/deallocate)
Event-based, pre-emptive multi-threading
LiteOS
Modular Unix-like OS for WSN
Provides a shell interface
Hybrid File Systems
Clinton & Nathan
Flash Memory
Wears out
Has a limit to how many times a region can be cleared
Managing wear-out
Wear-levelling
Moving data around the disk to ensure it's distributed evenly
Obsolete Blocks
Move valid data to take over obsolete data
Combine positive traits of SSD and HDD
SSD
:heavy_check_mark: Fast read-write access
:heavy_check_mark: More energy efficient
:heavy_multiplication_x: More expensive
:heavy_multiplication_x: Wears out faster
HDD
:heavy_check_mark: Larger data capacity
:heavy_check_mark: Reliable magnetic storage
:heavy_multiplication_x: Spinning disk sensitive to shock
:heavy_multiplication_x: Slower I/O
Use SSD and HDD in conjunction without data redundancies
Rust as a Language for OS
Peggy & Janelle
C
Highly portable :heavy_check_mark:
Faster execution time :heavy_check_mark:
No runtime dependencies :heavy_check_mark:
Allows direct memory/hardware access :heavy_check_mark: / :heavy_multiplication_x:
Is a compiled language :heavy_multiplication_x:
Rust
A 'safe' language
Objects are managed by the language throughout the entire program
Solving C's problems
Unsafe code must be specifically flagged as such
Introduces the concept of ownership
Allocated memory is owned by the variable
Prevents references from escaping their scope
Automatic freeing of unused memory
Boot Integrity
James & Jacek
Importance
Compromising security in the boot sequence could mean compromised security in the rest of the system
BIOS vs. UEFI
BIOS is simple and could be more easily replaces with a malicious duplicate
UEFI has more functionality, more memory, and support for secure booting
Realtime Operating Systems
Arianne & Matthew
RTOS
Maximum known latency for critical oeprations
Scheduling is completely predictable
A subset of general operating systems