Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ......

31
Jin-Soo Kim ([email protected]) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Operating Systems

Transcript of Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ......

Page 1: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

Jin-Soo Kim ([email protected])

Computer Systems Laboratory

Sungkyunkwan University

http://csl.skku.edu

Operating Systems

Page 2: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 2

Standalone Applications

▪ Often no OS involved

▪ One large loop

▪ Microcontroller-based embedded systems

Page 3: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 3

“Real-Time” OS

▪ Scheduling of threads (or tasks)

• Creation and termination of threads

• Timing of thread activations

▪ Synchronization

• Semaphores and locks

▪ Input and output

• Interrupt handling with predictable latency

▪ A small kernel size

Page 4: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 4

Full-Fledged OS

▪ Applications are huge and complex

▪ Multiple processes

▪ Virtual memory

• Requires MMU-enabled CPU

▪ File systems with persistent storage

▪ Networking: TCP/IP stack

▪ Security: User vs. kernel space

▪ Windowing & GUI support

Page 5: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 5

What is an OS?

▪ Provides an abstract view of the underlying computer system

• Processors Processes, Threads

• Memory Address space (virtual memory)

• Storage, I/O Files

▪ Manages various resources of a computer system

▪ Highly-concurrent, event-driven software

Page 6: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 6

System Calls

Page 7: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 7

Kernel Internals

Hardware

System Call Interface

shell shell

ls ps

Hardware Control (Interrupt handling, etc.)

File System Management

I/O Management (device drivers)

Memory Management

Process Management

Pro

tection

Kernel space

User space trap

scheduler

IPC

synchronization

Page 8: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

Processes and Threads

Page 9: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 9

Abstracting CPUs

▪ Process

• An instance of a program in execution

• Memory protection

• Resource allocation unit

▪ Thread

• A sequential flow of control

• Scheduling unit

▪ Task

• Process or thread

Page 10: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 10

Thread (1)

▪ A thread of control

▪ Usually consists of

• A program counter (PC)

• A stack to keep track of local variables and return addresses

• Registers

▪ Threads share the instructions and most of its data

Page 11: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 11

Thread (2)

▪ Key abstraction

• Each thread has its own logical control flow.

• Thread executions interleaved by the scheduler

• What is running a thread?

Time

Thread A Thread B Thread C

quantum or

time slice

Page 12: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 12

Thread (3)

▪ Context switching

• Control flow passes from one thread to another via a context switch.

Thread A code

Thread B code

user code

kernel code

user code

kernel code

user code

Time context switch

context switch

Page 13: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 13

Thread State Transition

Page 14: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 14

Process (1)

▪ An instance of a program in execution

▪ A process includes

• Hardware execution state (PC, SP, registers, …)

• OS resources (e.g., memory, open files)

• Other information (PID, state, owner, …)

▪ Two key abstractions

• Logical control flow (virtual CPU)

• Private address space (virtual memory)

Page 15: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 15

Process (2)

▪ Used to run a user program

▪ Protection domain

▪ Creating a new process is costly

▪ Inter-process communication is costly, since it must usually go through the OS

Page 16: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 16

Private Address Spaces

kernel virtual memory (code, data, heap, stack)

memory mapped region for shared libraries

run-time heap (managed by malloc)

user stack (created at runtime)

unused 0

%esp (stack pointer)

memory invisible to user code

brk

0xc0000000

0x08048000

0x40000000

read/write segment (.data, .bss)

read-only segment (.init, .text, .rodata)

loaded from the executable file

0xffffffff

Page 17: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 17

Virtual Memory

▪ Allows to run programs much larger than the available physical memory size

▪ Simplifies memory management

▪ Provides memory protection

Page 18: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 18

Threads vs. Processes

▪ A thread is bound to a single process (or a single address space)

▪ A process can have multiple threads

▪ Sharing data between threads is cheap: all see the same address space

▪ Threads are the unit of scheduling

▪ Processes are containers in which threads execute

▪ Processes become static, threads are the dynamic entities

Page 19: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 19

Classification

One Many

One MS/DOS

Early Macintosh Traditional UNIX

Many

Many embedded OSes

(VxWorks, uClinux, uC/OS-II, ...)

Mach, OS/2, Linux, Windows, Mac OS X,

Solaris, HP-UX

# o

f a

dd

r sp

ace

s:

# threads per addr space:

Page 20: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

Example: μC/OS-II

Page 21: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 21

What is μC/OS-II?

▪ A priority-based preemptive RT kernel

▪ Memory footprint: ~20KB

▪ Written mainly in C (open but not free)

▪ Ported to over 100 processors

▪ Manage up to 64 tasks

▪ Support 8-bit to 64-bit processors

▪ GUI, file system, etc. modules available

▪ http://www.micrium.com

Page 22: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 22

Task

▪ A task is a simple program that thinks it has the CPU all to itself

▪ Each task has

• Its own stack space

• A priority based on its importance

▪ A task contains your application code

▪ A task is an infinite loop

Page 23: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 23

Task Example

void Task (void *p_arg) { Do something with argument p_arg; Task initialization; for (;;) { Processing (your code) Wait for event; /* Time to expire .. */ /* Signal from ISR */ /* Signal from task */ Processing (your code) } }

Page 24: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 24

Task Creation/Deletion

▪ A task is created by OSTaskCreate()

▪ Make the new task ready for multitasking

▪ The followings passed to the kernel

• Starting address

• Stack

• Priority

• Arguments passed to the task, etc.

▪ A task is deleted by OSTaskDel()

Page 25: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 25

Task States

Resides in ROM

(non-active)

Waits for Execution

Context Switch

Waits for

Event

Event Occurs

or Timeout

Waits for time to expire, message, or signal

Page 26: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 26

Task Priority

▪ Max 64 priority levels

▪ 8 levels reserved for OS, 56 levels for user

▪ Low number means high priority

▪ Priority changed by OSTaskChangePrio()

▪ Suspending a task: OSTaskSuspend()

▪ Resuming a task: OSTaskResume()

Page 27: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 27

Task Synchronization

▪ Semaphore Mailbox Message Queue

OSQPost() OSQPostFront()

OSQPend()

OSMboxPost()

OSMboxPend()

OSSemPost()

OSSemPend()

Page 28: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 28

Semaphores

▪ OSSemPend()

• Counter--

• If (counter < 0), the task is blocked and moved to the wait list

• A time-out value can be specified

▪ OSSemPost()

• Counter++

• If (counter >= 0), the highest priority task in the wait list is removed from the wait list

Page 29: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 29

Mailbox

▪ OSMboxPen()

• The message in the mailbox is retrieved

• If empty, the task is immediately blocked

• A time-out value can be specified

▪ OSMboxPost()

• A message is posted in the mailbox

• If there is already a message, returns an error

• The task with the highest priority is removed from the wait list and scheduled to run

Page 30: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 30

Message Queues

▪ OSQPend()

• A message is removed from queue

• If empty, the task is moved to the wait list and becomes blocked

▪ OSQPost()/OSQPostFront()

• A message is appended to the queue

• OSQPost(): FIFO, OSQPostFront(): LIFO

• The highest-priority pending task receives the message and scheduled to run, if any

Page 31: Operating Systems - AndroBenchcsl.skku.edu/uploads/ICE3028S12/13-os.pdf · Operating Systems . ... Standalone Applications Often no OS involved ... Creating a new process is costly

ICE3028: Embedded Systems Design (Spring 2012) – Jin-Soo Kim ([email protected]) 31

Memory Management

▪ To reduce memory fragmentation

• Use of memory blocks with fixed size

• All blocks same size

• The size of blocks is configurable

▪ Creation of a memory partition: OSMemCreate()

▪ Requesting a memory block: OSMemGet()

▪ Releasing a memory block; OSMemPut()