Commit graph

148 commits

Author SHA1 Message Date
Stefan Lankes
c6339bfd2d by leaving the interrupt handler, we check if an urgent task is ready
if yes, the kernel switchs to this task
2011-09-06 06:46:52 -07:00
Stefan Lankes
27e652f81d if a task exists with a higher priority, we start a rescheduling in check_workqueues. 2011-09-02 13:57:11 -07:00
Stefan Lankes
e6fb99beb4 add inline assembler functions to determine the MSB and LSB 2011-09-01 13:31:41 -07:00
Marian Ohligs
ed5dba2672 Merge branch 'master' into ohligs
Conflicts:
	kernel/tests.c
2011-08-29 14:52:23 +02:00
Stefan Lankes
426c06193b remove bug in the timer queue 2011-08-28 23:56:29 -07:00
Stefan Lankes
81d384b1b0 minor changes in the code style 2011-08-28 08:54:18 -07:00
Stefan Lankes
4fe2562839 fine tuning by using the irq fast lane 2011-08-28 01:24:28 -07:00
Stefan Lankes
771db80f26 remove merge error => scheduler has to call "finish_task_switch" 2011-08-27 06:57:21 -07:00
Marian Ohligs
b3be0861f9 Merge branch 'master' into ohligs 2011-08-27 12:11:53 +02:00
Stefan Lankes
7e3c06f47b if required, the waken task will remove from the timer queue 2011-08-26 21:55:16 +02:00
Marian Ohligs
e9805be005 Merge branch 'master' into ohligs
Conflicts:
	kernel/tasks.c
	kernel/tests.c
2011-08-25 12:15:36 +02:00
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
Marian Ohligs
27b7c6aa6e add networkI/O (unstable) 2011-08-10 18:56:40 +02:00
Marian Ohligs
5c7e9f38ec Merge branch 'master' into ohligs
Conflicts:
	.gitignore
	kernel/syscall.c
	kernel/tasks.c
	kernel/tests.c
	newlib/examples/Makefile
2011-08-10 16:57:17 +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
Marian Ohligs
cdc6707852 Merge branch 'master' into ohligs
- one more bug: block_task is missing

Conflicts:
	include/metalsvm/tasks_types.h
	kernel/main.c
	kernel/tasks.c
2011-08-06 17:51:48 +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
Marian Ohligs
8fcf9514ca Merge branch 'master' into ohligs 2011-08-03 16:56:55 +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
Marian Ohligs
032bba3a95 - some chmod changes 2011-08-02 15:58:20 +02:00
Marian Ohligs
c3d912bee1 - minor optimization in main.c and tasks.c 2011-08-02 13:01:28 +02:00
Marian Ohligs
c7012f7bc0 - enable flags O_RDONLY O_WRONLY and O_RDWR 2011-08-02 11:57:14 +02:00
Marian Ohligs
3bc6844833 Merge branch 'master' into ohligs 2011-08-02 11:14:39 +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
Marian Ohligs
429c2a99d7 Merge branch 'master' into ohligs 2011-08-01 22:35:04 +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
Marian Ohligs
94a98c5950 Merge branch 'master' into ohligs
Conflicts:
	kernel/tasks.c
2011-07-30 19:21:25 +02:00
Stefan Lankes
f76f4ac70d fix wrong initialization of current_task 2011-07-30 17:36:21 +02:00
Marian Ohligs
55e0e971be merge master 2011-07-27 10:28:01 +02:00
Marian Ohligs
a14ba26991 Merge branch 'master' into ohligs
Conflicts:
	kernel/tasks.c
	kernel/tests.c
2011-07-21 15:05:32 +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
Marian Ohligs
3d74f1b514 - rewrite the read_fs and write_fs. Now both functions use fildes_t instead of vfs_node_t structs.
INFO:	typedef struct fildes {
        	vfs_node_t* 	node;
        	off_t 		offset;
		int 		flags;
		int 		mode;
	} fildes_t;

- merge fs_types.h and fs.h into one file fs.h
2011-07-01 18:04:00 +02:00
Marian Ohligs
58353723e1 fix typo 2011-06-12 12:22:18 +02:00
Marian Ohligs
16ac07a8ca fix bug in tasks.c 2011-06-12 12:18:54 +02:00
Marian Ohligs
5c9ff18204 fixing a bug with fork 2011-05-24 18:41:24 +02:00
Marian Ohligs
1f74434a46 Merge branch 'master' into ohligs 2011-05-18 12:50:41 +02:00
Stefan Lankes
08f5153257 add the support of inter core interrupts 2011-05-17 08:13:20 -07:00
Marian Ohligs
6c45e03d0e Merge branch 'master' into ohligs
Conflicts:
	fs/initrd.c
2011-04-26 16:52:52 +02:00
Marian Ohligs
ef59f6cb8d Merge branch 'master' into ohligs
Conflicts:
	kernel/tasks.c
2011-04-23 11:09:56 +02:00