WangRunji
0680023e35
Recover wait/sleep
6 years ago
WangRunji
c734f79699
Drop context when process exit. Remove util mod.
6 years ago
WangRunji
85a1dca684
Use weak linkage to provide dependencies for process::thread.
6 years ago
WangRunji
80b161db98
Recover set_priority and fork
6 years ago
WangRunji
5db908b1c5
Separate ProcessManager to a mod.
6 years ago
WangRunji
f7eb09e856
Multicore processing WORKS! Basically ...
...
- Rewrite processor.rs
Refactor to `Processor` & `ProcessManager`
- Use Box<dyn> instead of generic.
- Wait/sleep/wakeup is not supported yet.
I'm considering to implement them with WaitQueue.
6 years ago
WangRunji
5bc392f388
Enable RV32 IPI.
6 years ago
WangRunji
fc2fd18c36
Add docs for thread::spawn()
6 years ago
WangRunji
7dd9494389
Add `Scheduler.move_to_head(pid)` to replace `Processor.next`
...
Rename `set_reschedule` to `yield_now`
6 years ago
WangRunji
501ce6c4be
Fix memory crate test compile.
6 years ago
WangRunji
cd1bd55729
Update README, travis, riscv crate.
6 years ago
WangRunji
924c061d64
Merge branch 'x86-boot'
...
# Conflicts:
# crate/riscv
# kernel/Makefile
6 years ago
dzy
5a0ce1e464
Refactored RISC-V page table identity mapping into a function.
6 years ago
dzy
906019f7c6
Add little notes for BitAllocator
6 years ago
WangRunji
caeff9ad97
Update packages and fit for new Rust nightly
6 years ago
WangRunji
b88648ff44
Fit for newest Rust nightly. x86_64 ok, riscv32 broken.
6 years ago
WangRunji
a2111a928f
Move thread mod to ucore-process crate
6 years ago
WangRunji
776dc976c9
Fix for user
6 years ago
WangRunji
06b39ed521
Impl remove any for StrideScheduler
6 years ago
WangRunji
04b62ec79f
Use Vec instead of array in Scheduler
6 years ago
WangRunji
c8a9eaf3e6
Split process mod to extern crate
6 years ago
WangRunji
0c9679b710
Fix fork and syscall return value.
6 years ago
WangRunji
27daa6d491
Fix user trap
6 years ago
WangRunji
1ad3ed738e
Can run user program in RV32
6 years ago
WangRunji
89bcd5f660
Fix kernel thread
6 years ago
WangRunji
96d8af8034
Use CowExt for RV32
6 years ago
WangRunji
7d856fe009
Fix memory::cow LLVM error for RV32
6 years ago
WangRunji
5530549a54
Recover `process` `thread` `sync` mod for RV32. Pass compile.
6 years ago
WangRunji
7c7dbc9ded
Add CR3 to Context (x86_64)
6 years ago
WangRunji
95ab3a2f3b
Allocate kernel stack from heap, remove stack allocator, remove guard page.
6 years ago
WangRunji
81ff6f13e5
Fix recursive mapping, finish kernel remap.
6 years ago
WangRunji
d3ed84ba61
Fix compile
6 years ago
WangRunji
aecb85d5e7
Move MemorySet out to memory crate
6 years ago
WangRunji
5c14673fe0
Setup a simple page table, enable paging.
6 years ago
WangRunji
b26fee1990
Make more mods common for both x86_64 & riscv32.
6 years ago
WangRunji
ee242b44b2
Timer interrupt
6 years ago
WangRunji
aeb7fce0e6
SBI: Support RISCV64
6 years ago
WangRunji
02b94db859
Fix crate `riscv` version
6 years ago
WangRunji
bf2ad7c6a5
Change target arch to RISCV32IMA. Recover some dependencies.
6 years ago
WangRunji
a44231435f
Fork crate `riscv` as a submodule
7 years ago
WangRunji
ced765fb5b
New crate `bbl`, port `sbi` mod.
7 years ago
WangRunji
98be93e215
Fix Fifo & Clock SwapManager, pass test.
7 years ago
WangRunji
a7a34835d5
Basic swap framework, temporarily disable SwapManagers
7 years ago
WangRunji
e47f57a12a
Cow test pass in OS
7 years ago
WangRunji
ade0f0110f
Use PageTable interface in OS
7 years ago
WangRunji
f500086b9e
Copy-on-write for PageTable interface.
7 years ago
WangRunji
978faf46c5
Split test for MockPageTable
7 years ago
WangRunji
aa109498f1
Clear memory crate, redefine PageTable interface, reimplement MockPageTable.
7 years ago
WangRunji
f3d62a5b8f
Replace `AreaFrameAllocator` by `BitAllocator`. Set opt-level=1 to avoid stack overflow.
7 years ago
WangRunji
2762fded9c
New crate `bit-allocator`
7 years ago