Stefan Lankes
1e1e77351a
first approach to determine the cpu load
2011-08-24 09:32:36 +02:00
Stefan Lankes
35621d72d1
first try to realize task stealing
2011-08-18 12:16:31 +02:00
Stefan Lankes
93257508ee
wakeup a blocked task on the core, which the task used during the last time slice
2011-08-17 15:09:59 +02:00
Stefan Lankes
296e8e98f4
the idle priority doesn't longer possess an own runqueue
...
only the idle task uses this priority class
2011-08-17 14:49:12 +02:00
Stefan Lankes
4c9855c83a
redesign of the scheduler, defining of a runqueue per core
...
=> Currently, we work stealing isn't supported
2011-08-17 13:51:19 +02:00
Stefan Lankes
20b074d81c
add additional error messages
2011-08-10 09:55:59 -07:00
Stefan Lankes
5d9f361174
add system calls to map the user-level socket library to LwIP sockets
2011-08-10 08:15:53 +02:00
Stefan Lankes
a179ded21b
redesign of the timers, support of timeouts in mailboxes and semaphores
2011-08-06 15:55:34 +02:00
Stefan Lankes
452aa3b1d1
cosmetic changes and add some scheduling statistics
2011-08-03 19:37:05 +02:00
Stefan Lankes
22dab59699
minor changes in the scheduler routine to relalize a fair round-robin scheduling
2011-08-03 15:10:58 +02:00
Stefan Lankes
026d5e264c
use table_lock to avoid GPs during a task switch
2011-08-02 10:24:17 +02:00
Stefan Lankes
744abc36c8
minor optimization on single core systems
2011-08-02 07:07:16 +02:00
Stefan Lankes
d5bfc4f28c
avoid races on SMP systems
...
=> signalizes with a new flag, that a task switch is finished
2011-08-01 22:01:39 +02:00
Stefan Lankes
f76f4ac70d
fix wrong initialization of current_task
2011-07-30 17:36:21 +02:00
Stefan Lankes
ab37b024b0
simply the scheduler => move code from entry.asm to timer.c
2011-07-21 09:59:29 +02:00
Stefan Lankes
e57a447fda
minor changes in using the per_core macro, add additional output messages by an exception & cosmetic changes
2011-07-20 09:47:46 +02:00
Stefan Lankes
20c944b099
avoid a task migration during the calculation of the current task
...
=> temporary clearing the IF flag
2011-07-20 08:24:24 +02:00
Stefan Lankes
dfa928de78
reduce the number of function calls to determine the core id
2011-07-19 21:22:54 +02:00
Stefan Lankes
e595fae384
add SMP support
...
- this is experimental version
- by setting MAX_CORES to 1, you are to disable the SMP support
2011-07-18 09:14:28 +02:00
Stefan Lankes
08f5153257
add the support of inter core interrupts
2011-05-17 08:13:20 -07:00
Stefan Lankes
29ab43f289
First steps to realize Inter-Core-Communication via RCCE
2011-04-23 00:13:12 -07:00
Stefan Lankes
f3b620a9be
add rudimental support of the system call times
...
- no full support of the POSIX API
- however, the libc function clock works correctly
2011-04-21 10:13:58 +02:00
Stefan Lankes
0c411fd702
add basic support of sbrk and fix bug in saving of the fpu context
2011-04-21 07:32:20 +02:00
Stefan Lankes
7cb05d8f4a
first version to support the FPU
...
- seems to work
- currently, we didn't support SIMD instructions
2011-04-21 07:32:10 +02:00
Stefan Lankes
bd703f6be4
avoid compiler errors by using MAX_CORES = 1
2011-04-18 06:44:17 -07:00
Stefan Lankes
68564c3238
Merge branch 'tests'
...
Conflicts:
include/metalsvm/spinlock.h
include/metalsvm/spinlock_types.h
kernel/tasks.c
2011-04-18 15:36:22 +02:00
Stefan Lankes
e94c31d03b
add a new IRQ save spinlock implementation
...
- avoids a deadlock
- usable in a interrupt handler
2011-04-18 15:12:18 +02:00
Stefan Lankes
b5908af744
Merge branch 'master' of git.lfbs.rwth-aachen.de:metalsvm into doxygen
...
Conflicts:
.gitignore
arch/x86/include/asm/apic.h
arch/x86/include/asm/page.h
arch/x86/include/asm/processor.h
arch/x86/kernel/idt.c
2011-04-14 08:40:52 +02:00
Stefan Lankes
c43efee104
use HALT instead of NOP
2011-04-08 16:02:18 +02:00
Jacek Galowicz
6c6d77cfa6
Committed the rest. There is only few stuff missing.
...
Embedded nice pictures.
2011-04-05 14:44:42 +02:00
Stefan Lankes
604670c981
now, the system call "execve" sets also the environment
2011-03-10 09:10:12 +01:00
Stefan Lankes
2d9ba6ae70
forwarding arguments to the new tasks
2011-03-08 23:12:38 +01:00
Stefan Lankes
d201c4d1bc
- add the support of the system call execve
2011-03-07 20:26:55 +01:00
Stefan Lankes
6f092641ba
remove memory leak and redesign of the internal memory accounting
2011-03-04 22:44:53 +01:00
Stefan Lankes
56ee331596
add nested spinlocks
...
- required to avoid deadlocks
2011-03-04 11:38:40 +01:00
Stefan Lankes
a27150b923
Fix bug in system call "fork"
...
- issues: memory leak
2011-03-02 23:08:01 +01:00
Stefan Lankes
5ce3ed9338
First steps to support the system calls "fork" and "wait"
...
- Currently, the system call "fork" doesn't work and has a memory leak
- However, it is a good starting point for further developments.
2011-03-02 13:49:36 +01:00
Stefan Lankes
17193475bb
use a spinlock for each PGD
...
increases also the useability of vm_alloc and vm_free
2011-02-24 19:06:32 +01:00
Stefan Lankes
e157f93104
create also for kernel tasks a new PGD
2011-02-24 18:44:11 +01:00
Stefan Lankes
54d636d25c
after process termination, the PGD and its PGTs will be freed
2011-02-24 18:32:58 +01:00
Stefan Lankes
16efb49204
remove obsolete function arguments
2011-02-24 10:15:58 +01:00
Stefan Lankes
c5b650fc32
add the support of the VMA list into the kernel
...
- after process termination, this list is used to free the allocated memory regions
2011-02-24 09:37:31 +01:00
Stefan Lankes
c355adb300
create a new pgd for each process
2011-02-18 21:20:15 +01:00
stefan
9a9df5ed2e
- merge current eduOS branch to MetalSVM
...
=> add the support of "real" user-space applications, which could be loaded via initrd
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@394 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-02-08 18:37:56 +00:00
stefan
2bfc5a49dc
- move 32bit elf header to arch/x86
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@376 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-01-19 07:04:50 +00:00
stefan
8646b56a63
- minor changes to support APIC
...
(currently, we got page fault by entering apic_calibration)
- first steps to realize a loader
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@365 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-01-05 10:16:53 +00:00
stefan
45219bce2e
- huge commit
...
- enable the paging support
- redesign of the APIC code
TODO:
- Currently, we are not able to start user-level applications.
- The RTL8139 driver does not longer work. Perhaps, a bug in the output function.
- The APIC codes doesn't work on all systems. Therefore, the code is currently disabled.
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@326 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-12-10 06:16:58 +00:00
stefan
b78b2349eb
- add some error checks
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@234 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-05 06:07:39 +00:00
stefan
ae16dc414b
- remove some typos in the comments
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@197 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-10-25 16:59:23 +00:00
stefan
b0e600da99
- prepare MetalSVM for multicore environments
...
- create the variable current_task on each core
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@159 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-09-12 14:45:03 +00:00