Homework – Part 3

Warp drive research – a breakthrough

Interstellar travel is one of humanity biggest goals. To reach this goal Zefram Cochrane invented the warp-drive engine in 2063. But this is just a science-fiction dream as every Star Trek fan knew. But this idea is still maintained by very ambitious scientist on earth, with Harold ‘Sonny’ White at Johnson Space Center leading the way. He designed a experiment to distort the  spacetime around a obstacle in space. This is different from other ideas, because he does not want to accelerate the obstacle but bend the space time around it. This allows vehicles to reach planets in millions of light-years distance to be reached in a some weeks. Upon his idea a lot of enthusiasts have founded several organizations to support White with his idea. These organizations are driven by the idea to reach far planets that have been discovered over the past years. Not enough, theses planets considered to be habitable and may have potential of rudimentary life-forms.

One well-known problem that exists is the fact that there is no spacecraft able of traveling these distances. That’s because current technology is not capable of  ‘driving’  needed speed to reach planets in a fair amount of time. Despite these fact, even if there is a technology, there is a need for the fuel to power the spaceship. Traveling such distance would result in a huge amount of fuel needed. This huge amount of fuel would also result in a way heavier spaceship. So this is kind of paradoxon. Traveling far distance and high speed means more fuel, but more fuel means more weight to move.  So there is a need for different travel-engine. The most promising technology is the use of nuclear fusion energy. But, nuclear fusion is very complex process that is not even completely explored in reactors on earth. Despite this problem, traveling at high speed encounters other problems as well, like space dust that hits the spaceship with a high velocity or deceleration.

The need of space travel is necessary  due to the fact that in several years earth is just before extinction because of nuclear wars, pandemic, interstellar catastrophes etc. The only nearby candidate for this operation is mars, but it takes several hundred of years of climate engineering.

Homework – Part 2

Assignment 1: Done

Assignment 2:

1. urban Internet-of-things – a proof of concept for the smart city vision

2. random string testing – black-box test generation

assignment 3:

Scheduling Algorithm in Real-Time-Operating Systems e.g. FreeRTOS

Comparison of popular scheduling algorithm and a detailed view on the currently used and most optimized algorithm used in real time operating systems e.g. FreeRTOS.

Writing process for my bachelor thesis

When writing my bachelor thesis there was a major lack of how to schedule my time. So I actually decided to write something when I found some time. Most problem I want to address is the fact that there was no(no) experience how to write a scientific document.

What did i like about writing the thesis?:

Actually about the writing I didn’t liked it at all. I only loved the topic because I am totally into operating systems and that was the only thread I was able to grab on while writing. I loved to dig into the topic but I hated to write about it an super scientific manor.

what were the DIFFICULTIES?:

Most difficult part was to find the way to start the thesis. Even more complicated was to write it in a correct scientific way. This is meant regarding the citation process, the depth of the topic and the golden thread for the thesis.

do you like the result?:

I don’t like the textual result at all. I love the implementation and the result of the design but the the thesis is not all is not a good result for my perspective.

It’s written in a too casual manor and not scientific enough and this was also a big critics point of the professor who guided me a lot.

Quick abstract for bachelor thesis

The following text represents a quick abstract of what I have done in my bachelor thesis.


Developing a mini-operating system for a arm926 processor

Motivation and goals

In modern mobile phones, embedded systems and daily used devices mini processors are built in. These processors are responsible for all the hard/software communication with the device. Having a fine grained control over these resources is very important for modern systems. With these thesis I present a small approach towards a mini operating systems for these kind of processors and environments. The goal is to show that it is possible to implement a operating-like system on these small devices with limited computation power as well as other limited resources like memory etc.

 

introduction to state-of-the-art processors

In common devices like mobile phones, coffee-brewer, washer etc. a lot of different processors are assembled. Shortly I want to show the most commonly used ones.

Version Example Usage
ARMv4 ARM8 Gameboy Advanced, Nintendo DS
ARMv5 ARM926 Palm Tungsten
ARMv8 ARM-Cortex-A50 Mobilephones,Tablets

This is just a short extract of the commonly used ones.

Difference between risc and cisc processors

Out there are two different big processor architectures produces by the big processor manufacturer. The difference between those two architectures is how the processors process the commands. The RISC(Reduced Instruction Set Computer) has less complex instruction compared to the CISC(Complex Instruction Set Computer). Less instructions means the processor can be designed in a very efficient way. This is important if one think of the field of application. In embedded systems there is only less room for the hardware, so an efficient design is on of the most important facts.

design

When thinking of implementing a operating system there is one major fact that has to face with high attention. The design is the most important part in an operating system. In this part I want to share the approach how the mini-operating system is designed.

First of all there is the kernel. The kernel is responsible for all the communication either with the connected hardware or the inter-process communication with all the resources like memory and task management. The kernel is piece of software sitting directly behind the hardware abstraction layer. Is the system booted the kernel takes control over everything.

Controlled by the kernel there is the scheduler. This piece of software is responsible for the task/process management within the operating system. The scheduler is implemented as a simple round robin scheduler. This one is commonly used by simple operating systems and is totally feasible for this approach.

Followed by the kernel there are devices like output and input devices(keyboard, display etc.)

detailed design

All the booting process and all the low level processing was done with assembler. This is obviously though because assembler is a very efficient and close-to-the-hardware language. You can access regions of memory directly, enter specific operating modes without using complex workarounds. After the system is booted the kernel takes control and prepares all the pre-configured tasks for execution. These task are very rudimentary tasks compared to modern tasks. This designed was chosen due to the lack of time at the end.

The scheduler now takes control and schedules all the task in an round robin procedure. Each task has a predetermined amount of time to do his work. If not finished in this given time the next task is on the turn.

The memory management unfortunately was a process that was faced too less time and I missed to implement everything. So the mini operating system for this thesis has a fixed amount of memory and all tasks also have fixed amounts of memory, stack memory as well as heap memory.

conclusion

Writing an operating system is a very complex task. Writing an operating system for modern and old embedded devices is an even more complicated task. New problems arise like memory management issues, limited processing capacities, scheduling issues and more. But it could be shown that it is possible to implement a small extract of an operating system with the smallest capabilities. It has to be said that still work has to be done to built a full and flexible operating system for embedded systems.