100 likes | 258 Views
COMMON INTERFACE FOR EMBEDDED SOFTWARE CONFIGURATION by Yatiraj Bhumkar. Advisor Dr. Chung-E Wang Department of Computer Science CALIFORNIA STATE UNIVERSITY, SACRAMENTO. Expensive hardware increases overall cost. Lesser degree of scalability.
E N D
COMMON INTERFACE FOR EMBEDDED SOFTWARE CONFIGURATION by Yatiraj Bhumkar Advisor Dr. Chung-E Wang Department of Computer Science CALIFORNIA STATE UNIVERSITY, SACRAMENTO
Expensive hardware increases overall cost. • Lesser degree of scalability. • Most of the visible hardware is required to control the invisible hardware or software. Purchased in 1970 by UNT, the IBM 360/50 CPU was acquired to support academic and administrative computing. The original configuration of the 360/50 was one multiplexer channel, one selector channel, 256K core memory, a 1403 line printer, a 2540 card reader/punch, three 30KB tape drives, and five 2314 single density disk drives. The original operating system was OS/MFT/HASP supporting a maximum of three user partitions.
With the help of one web server and several web pages per software, we can configure all hardware and software at no extra hardware cost. • Very high degree of scalability.
CGI Executable Embedded device Common Gateway Interface (CGI) • CGI as a separate process hampers optimization goals: static resources (PCB), run-time resource (context switching time). • Several web pages of several different software and hardware and their corresponding CGI executables make management clumsy, wastage of file-system space.
Solutions to CGI drawbacks • Fast CGI: • Intelligent approach to save spawning of separate process PER request. • Similar kind of requests are serviced by one process each. • The process keeps running listening for other such requests. • Wastage of resources. • Ad hoc intelligence reduces scalability • In-process CGI: • Once a CGI process is spawned, it converts all function calls into inline functions. • Reduces the overhead of function calls. • Greater image size because of inline functions. • It still spawns a separate process per request. • CGI threads: • Spawn a separate THREAD instead of Process. • Spawning of threads still incurs context switching. • For Linux, threads and processes are one and the same at kernel-level.
My approach of CGI • CGI as function call: • Instead of spawning process or thread, if CGI can be called as a function, it would save enormous amount of resources.
Advantages of CGI Function • No spawning of process, no context switching. • Saves memory and other critical resources, improves overall speed and performance. • No inline functions involved, maintaining small web server footprint. • Same interface with web server as normal CGI process. • Migration from CGI process to CGI function is easy.
Drawbacks of CGI Function • Allows code isolation but NO execution isolation from web server. If CGI function crashes, whole web server crashes. • Sequential execution so the web server has to wait for the CGI function to finish.
Future Extensions Questions Please!!! • Universal file manipulation library • XML parsing tool. • Configuration on the fly • Software restarts to read from configuration file , entails Unaffordable downtime. • Software should export functions that are dynamically linked with web server. • These functions change the variable values on the fly.