Process Situations vs. Priority

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
Post Reply
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Process Situations vs. Priority

Post by piranha »

So, there is priority scheduling....-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6
Each number is a consecutive priority.

What about process situations? Like:
-1: Nobody Cares about these processes.
0: Background, really low priority.
1: Background, normal.
2: Normal.
3: High priority.
4: Vital User processes.
5: Vital System Processes, non-killable.
6: Emergency, non-killable, when one of these is running ALL of the process < 4 pause.

Other then that, each one could have it's own rules for the running of the processes, or rules that define what situation process can run when others are running......
There could also be a combo of priority and situation scheduling...
Tell me what you think.

-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
User avatar
01000101
Member
Member
Posts: 1599
Joined: Fri Jun 22, 2007 12:47 pm
Contact:

Post by 01000101 »

That is a good idea.
But doesnt Windows already utilize that?

There are already non-killable critical process usage that makes the other lower non-critical processes slow down or even halt until it is finished.
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Post by piranha »

Yeah, but in my idea you can change priority of everything. Even critical.

Yes windows does this, but to me it doesn't seem to work very well.

Windows uses priority only. I haven't come up with specific rules, but there could be a setup of automatically moving the priority/situation up or down depending on CPU usage, signals, or something.

-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
Avarok
Member
Member
Posts: 102
Joined: Thu Aug 30, 2007 9:09 pm

Post by Avarok »

In my opinion the problem with Window's critical processes - like shutting down a process - is that they're processes at all.

1) Why the hell do you need a process to free an address space and remove an item from a scheduler?
2) Doesn't creating one to kill another cost more than just killing it in the first place?

In my opinion, it doesn't matter which one is full of invigorating youthful vitality. The only reason I see for prioritization at all is to allow us to define which drivers go first. We can usually figure that out using the LAPIC, and we usually tend to use more or less the same prioritization layout; give or take depending on our OS' design objectives.
There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.
- C. A. R. Hoare
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Post by AndrewAPrice »

Minix 3, from what I've gathered from studying it's source, priorities processes as; Kernel, Driver, Server, User. The process will not get a share of the CPU if a process in a former category still has work to do.

So the user processes get CPU time, drivers and servers are forced to do their work as fast as possible. That's why if a driver or server is using up enough CPU resources, a special process server will 'ping' it, and if it does not reply then the driver or server will be considered stuck in a loop and will be killed and restarted.
My OS is Perception.
Post Reply