23
© 2004 Wayne Wolf Overheads for Computers as Components Operating systems Windows CE files. Windows CE databases. Windows CE processes.

© 2004 Wayne Wolf Overheads for Computers as Components Operating systems zWindows CE files. zWindows CE databases. zWindows CE processes

Embed Size (px)

Citation preview

© 2004 Wayne WolfOverheads for Computers as

Components

Operating systems

Windows CE files.Windows CE databases.Windows CE processes.

© 2004 Wayne WolfOverheads for Computers as

Components

WinCE file system

Designed for devices without rotating storage. May use disk drives.

Based upon object store. Object store is undocumented---can’t

determine format in memory.API is fairly complete version of

Win32 file system.

© 2004 Wayne WolfOverheads for Computers as

Components

Object store

Default file system in WinCE.Stores files in compressed form.Applications cannot easily

distinguish between RAM and ROM files.

Limited to 256 MB of RAM.Individual file limited to 32 MB.

© 2004 Wayne WolfOverheads for Computers as

Components

Other WinCE file systems

Installable file system (IFS): up to 256 storage devices with file systems.

Every storage device is a directory from root. Doesn’t use drive letters C: etc.

Doesn’t have size limitations of object store.Uses Windows-style file names.Supports many attribute flags: read-only,

system, hidden, etc.

© 2004 Wayne WolfOverheads for Computers as

Components

Memory-mapped files

Can use memory reads/writes to read and write file. Don’t need FileRead(), FileWrite().

Opened with specialized calls CreateFileForMapping(), CreateFileMapping().

© 2004 Wayne WolfOverheads for Computers as

Components

WinCE registry

Database that stores data on configuration of WinCE and applications. Used to store data that needs to be saved.

Contains keys, values. Multiple levels of keys separated by ‘\’.

Registry access: Key containing value is opened. Value read or written. Key is closed.

© 2004 Wayne WolfOverheads for Computers as

Components

WinCE databases

Designed for address lists, etc.Provides basic database functions:

One level. At most four sort indexes.

Not supported by other Windows platforms.

© 2004 Wayne WolfOverheads for Computers as

Components

Database records

Database: set of records. Record: unlimited number of properties. Property types:

2-byte signed integer. 2-byte unsigned integer. 4-byte signed integer. 4-byte unsigned integer. Time/date structure. Null-terminated Unicode string. Collection of bytes. Boolean. 8-byte signed value.

© 2004 Wayne WolfOverheads for Computers as

Components

Database volumes

Volume: format for storing database in a file.

Can be stored in compact flash, etc.Must be mounted and dismounted.

© 2004 Wayne WolfOverheads for Computers as

Components

Windows CE modules and processes

Types of executable code: Applications .exe. Dynamically linked libraries .dll.

A process is an instance of an application. Each process has its own thread.

© 2004 Wayne WolfOverheads for Computers as

Components

DLLs vs EXEs

An executable can be executed.A DLL cannot be directly executed.

Must be called by an EXE or DLL. EXE can list the DLL in its import table. DLL can be loaded explicitly.

Share file format. Only difference is markers in the

header.

© 2004 Wayne WolfOverheads for Computers as

Components

WinCE processes

Only 32 processes can execute at any one time.

WinCE processes contain less state than other Windows processes. No current directory, etc.

© 2004 Wayne WolfOverheads for Computers as

Components

WinCE startup

When started, WinCE starts four processes: Kernel NK.exe. System services FileSys.exe. GUI support GWES.exe. Device drivers Device.exe.

© 2004 Wayne WolfOverheads for Computers as

Components

WinCE threads

A thread is a flow of control. Has its own stack and register set.

A process has one or more threads. Primary process for threads. Process can create an arbitrary number

of additional threads.All threads in a process share the

same address space.

© 2004 Wayne WolfOverheads for Computers as

Components

Threads and scheduling

The kernel schedules threads. Preemptive scheduling. Time sliced into quanta.

Preemptive scheduling: Higher priority ready thread runs first. Thread can be blocked. Scheduler supports priority inheritance to

solve priority inversion.

256 possible scheduling priorities.

© 2004 Wayne WolfOverheads for Computers as

Components

Priorities and quanta

Priority can be changed by the thread or by another thread. 0 is highest priority, 255 is lowest.

Each thread may have its own time quantum.

© 2004 Wayne WolfOverheads for Computers as

Components

WinCE fibers

Fiber: thread-like object that is scheduled by the application, not the system. Application creates thread, then turns it

into a fiber.Introduced for better compatibility

with Unix.

© 2004 Wayne WolfOverheads for Computers as

Components

Thread local storage

Each thread that calls a routine can have its own local storage. Persistent. Unique to a thread.

© 2004 Wayne WolfOverheads for Computers as

Components

WinCE synchronization

Based on synchronization objects. Thread waits on synchronization object. Signal to objectd causes thread to

unblock.

© 2004 Wayne WolfOverheads for Computers as

Components

WinCE events

Event object capture signals: Named objects. In signaled or nonsignaled state.

Event object must be created in each process that wants to use it.

Processes can wait on objects.

© 2004 Wayne WolfOverheads for Computers as

Components

Semaphore objects

Counting semaphores. Zero count is not signaled. Non-zero count is signaled.

Threads can wait on semaphore objects.

© 2004 Wayne WolfOverheads for Computers as

Components

Mutexes

Used to make sure that only one process at a time works on a resource. Signal is on when not owned by a

thread. Signal is off when owned by a thread.

© 2004 Wayne WolfOverheads for Computers as

Components

Critical sections

Critical section of code must not be executed at same time as another critical section.

Controlled by EnterCriticalSection(), LeaveCriticalSection().