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
lcy1996
ec27ed8d2e
add comment
6 years ago
lcy1996
63349ade19
Finish add more comment for kernel and finish set user memory swappable.
6 years ago
WangRunji
5bc392f388
Enable RV32 IPI.
6 years ago
lcy1996
0a81014007
Add page handler for swap in/out in riscv32's pagefault
6 years ago
Ben Pig Chu
fc727b9618
Merge branch 'OsTrain2018-g4' of https://github.com/oscourse-tsinghua/RustOS into crate-memory-comment
6 years ago
Ben Pig Chu
4a17ce8f16
comments of crate/memory
6 years ago
chenqiuhao
5bc40fd5d4
Merge branch 'OsTrain2018-g4' of https://github.com/oscourse-tsinghua/RustOS into OsTrain2018-g4
6 years ago
chenqiuhao
e05be94c80
finish the comment of the process
6 years ago
lcy1996
b3e2ca8aa0
Merge conflict
6 years ago
chenqiuhao
c4b53dc8e5
finish comment of sync
6 years ago
chenqiuhao
ddb679ce2b
update comment for bbl module, but have not finished.
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
6 years ago
WangRunji
ced765fb5b
New crate `bbl`, port `sbi` mod.
6 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
WangRunji
beffc302f0
Std based dining-philosophers-problem (mutex & condvar version)
7 years ago
WangRunji
09098f0d2f
Add physical mod and reorganize.
7 years ago
WangRunji
e2e9ead17c
Improve MockPageTable. Fix tests.
7 years ago
WangRunji
733c102836
EnhancedClockSwapManager
7 years ago
WangRunji
c0d83ef75b
Make tests safe, by using Arc & RefCell.
7 years ago
WangRunji
e5e27db4ec
New page_table mod. Addr -> VirtAddr.
7 years ago
WangRunji
8d304da4b4
MockSwapper
7 years ago
WangRunji
470d5692fe
Pass test for FifoSwapManager. Change interface.
7 years ago
WangRunji
be6ff50d7f
Test framework for FifoSwapManager. Not passed.
7 years ago
WangRunji
a1e9ee36b2
Basic SwapManager & MockPageTable
7 years ago
WangRunji
0420e85e4d
Simple VMA & MM struct at extern crate.
7 years ago