Coder Social home page Coder Social logo

arqvengeros's People

Contributors

acrespo avatar champo avatar dariosus avatar eordano avatar esneider avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

arqvengeros's Issues

Blocked processes

Sleeping processes, or whatever process which is blocked, should be removed from the scheduler and then put back in.

Sibling relation between processes

Create a relation between sibling process.
Which enables a nice linked list of child processes for a given parent processes, simply by transversing the sibling relation.

Top

Top like command that shows process table information.
For starters, process state (running / zombie), process name, cpu time used (porcentual over N timer ticks), start date.

Complete man pages

Several newly added commands lack manpages, it'd be nice to have them.

We are going to have more than 25 commands....

Currently 27 and counting... We gotta do something about it...
Help command cannot show every command on screen...

Options:
-implement scrolling upwards
-cry
-make some commands go dooooownnnn

File system

Implement basic File System IO.

It should be taken into account that this FS has to be extended to support permissions, sym links and FIFOs.

ATA PIO driver

Create a working ATA driver using PIO & LBA28 addressing.

kill

Create a kill command that can kill other active processes.
When killing a process that has children, all child processes must be killed too (recursively).

Scheduler treats every call like a tick

Every time scheduler_do is called, it assumes a tick went by. Which is most definitly not true, since it's called when a system call ocurrs too.

This means measurements depend on the number of system calls done by executing processes, and also that sleeping processes may wake up before their time.

Background process

Allow for the execution of background process by using the "&" modifier in the shell.

The sleep list is updated only when a sample ends

In 32645f3 the function scheduler_tick was introduced, it calls sleep_list_update.
This is all good, except for the fact that scheduler_tick isn't really tick but more like scheduler_sample_end since it's only called when a sample ends. This means that sleep isnt tick based, but sample based, which is not what sleep actually expects.

Users & groups

Add users & groups to the SO.

This requires a set of command line tools that can create & destroy both users & groups.
Also, tools to add users to groups, and remove them too.

Shells should require an existing username before starting execution.
And they should provide a cli tool to logout of the current account, and allow the user to login with a new account.

Malloc for userland

We need to offer users the chance to use malloc to reserve memory.
Ideas so far:

1)syscall malloc :
-look other way in case someone forgets to do its frees
-make sneida implement a feature to enable us to save malloc contexts for processes

  1. save a list of used pages by each process

O(1) round robin

The current round robin scheduler uses a fixed table, with a O(n) where n is the size of the table.
It can easily be changed for O(1) time.

TTY control process

Move the TTY logic into it's own process.

It has to:

  • Keep track of the active terminal & process.
  • Bridge the gap between the keyboard & video drivers, and the shell (See ioctl & control sequences)
  • Switching the active terminal & process

The active terminal is the current on-screen terminal.
The active process is the process belonging to the active terminal that can read & write to stdin/out

Process priority

Add a priority level to processes that influences the amount of cpu time given by the scheduler.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.