Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
706a1dd
first draft of singly linked list
mfm92 Oct 11, 2015
c62506a
Add e-mail adress to authors file
dsoellinger Oct 13, 2015
a3afbc5
Fix type conversion problems
dsoellinger Oct 13, 2015
67e2b10
updated self-compilation script and tested list some more
mfm92 Oct 15, 2015
caf43e8
add test list script
mfm92 Oct 15, 2015
d03cd0b
combined shell scripts into makefile
mfm92 Oct 15, 2015
2ce09c8
deleted scripts, combined them in makefile
mfm92 Oct 15, 2015
86bda00
Add makefile
dsoellinger Oct 15, 2015
a8d040f
.
dsoellinger Oct 15, 2015
7ee20c9
Remove scripts
dsoellinger Oct 15, 2015
709f5bb
Merge branch 'selfie-master' of https://github.com/suli001/SE-Winter-…
mfm92 Oct 18, 2015
d648906
Merge remote-tracking branch 'upstream/selfie-master' into selfie-master
dsoellinger Oct 19, 2015
a4583d6
Try to get it working
dsoellinger Oct 19, 2015
9a36c86
Execute multiple processes...Yeah
dsoellinger Oct 20, 2015
9b7c42e
Restructuring
dsoellinger Oct 20, 2015
b4ad733
.
mfm92 Oct 22, 2015
bcd2fdd
letting multiple processes terminate more gracefully
mfm92 Oct 22, 2015
afdd491
updating makefile
mfm92 Oct 22, 2015
f46d577
different approach to terminating processes
mfm92 Oct 22, 2015
6fdc03f
.
mfm92 Oct 22, 2015
f2190e3
Merge branch 'assignment1' into selfie-master
mfm92 Oct 22, 2015
d1d9189
merging into selfie-master
mfm92 Oct 22, 2015
03e7a37
Merge branch 'selfie-master' of https://github.com/cksystemsteaching/…
mfm92 Oct 26, 2015
2e08e50
merging upstream changes
mfm92 Oct 26, 2015
3b3b457
.
mfm92 Oct 26, 2015
a4545f0
Implement segments
dsoellinger Oct 27, 2015
a5997ec
that commit that you need in order to pull
mfm92 Oct 27, 2015
8fc4ede
Revert "Implement segments"
dsoellinger Oct 27, 2015
dcdd0d7
Revert "Revert "Implement segments""
dsoellinger Oct 27, 2015
5d11717
updated makefile and example file
mfm92 Oct 28, 2015
5c60dd1
.
mfm92 Oct 29, 2015
586a7b8
.
mfm92 Nov 2, 2015
624ad35
Merge branch 'selfie-master' of https://github.com/suli001/SE-Winter-…
dsoellinger Nov 2, 2015
3a10864
Replace context switch with flag
dsoellinger Nov 2, 2015
196a419
.
mfm92 Nov 2, 2015
497eb6d
implement basic (un)lock functionality
mfm92 Nov 2, 2015
f977586
make code less spaghetti-like
mfm92 Nov 3, 2015
9d63422
introduce more fairness to process scheduling (blocking->ready part)
mfm92 Nov 3, 2015
b6ce53a
introduce getpid as proper syscall
mfm92 Nov 4, 2015
371658b
introduce getpid as proper syscall
mfm92 Nov 4, 2015
732dedc
update demo program
mfm92 Nov 4, 2015
26a3feb
Add Timeslice Demo
dsoellinger Nov 5, 2015
c7525d5
Merge branch 'assignment2' into selfie-master
dsoellinger Nov 5, 2015
cacc8d3
Merge branch 'selfie-master' of https://github.com/cksystemsteaching/…
dsoellinger Nov 5, 2015
06aa291
.
dsoellinger Nov 5, 2015
ed97429
updated makefile
mfm92 Nov 5, 2015
4af1a6f
merged in changes from cksystemsteaching repo
mfm92 Nov 8, 2015
ae79741
.
mfm92 Nov 9, 2015
8c5bafb
no more segfaults in copy_segment
mfm92 Nov 9, 2015
0c0d0f1
getting closer to a working implementation
mfm92 Nov 9, 2015
91b4461
Further improvements
dsoellinger Nov 10, 2015
fc751b3
More detailed test
dsoellinger Nov 10, 2015
8ef6e65
Placeholder for Process/Seg Offsets
dsoellinger Nov 10, 2015
bc032eb
Add further placeholders
dsoellinger Nov 10, 2015
62e7696
remove some magic numbers
mfm92 Nov 11, 2015
c0b842e
.
mfm92 Nov 11, 2015
b8eebd5
merged with cksystems repo
mfm92 Nov 11, 2015
339d2ad
updates...
mfm92 Nov 11, 2015
c38258b
cleaned up code a bit
mfm92 Nov 11, 2015
53a26cf
added some comments...
mfm92 Nov 15, 2015
2eb39ed
Try to get on-demand paging running
dsoellinger Nov 17, 2015
4818406
.
mfm92 Nov 17, 2015
cb08890
simple test program terminates gracefully now ^_^
mfm92 Nov 17, 2015
94b8e83
Rename getSegment to getPageTable
dsoellinger Nov 17, 2015
45ce33c
Get fork() and exit() running
dsoellinger Nov 17, 2015
4e65707
merge from upstream
mfm92 Nov 18, 2015
f3ed0f8
Some improvements
dsoellinger Nov 19, 2015
d282438
small fix for longer time slices...
mfm92 Nov 19, 2015
317a488
Use Array instead of list
dsoellinger Nov 20, 2015
e2b3c8b
Yeah, self hosting... again
dsoellinger Nov 21, 2015
d80f745
.
mfm92 Nov 23, 2015
3e84535
demo program for assignment 5
mfm92 Nov 24, 2015
8fd1a54
updated demo
mfm92 Nov 25, 2015
8fca527
kill process if page frame is requested when no physical page frames …
mfm92 Nov 25, 2015
1ece420
bug fix in fork: last created process
mfm92 Nov 26, 2015
3309417
Implement syscall read
dsoellinger Nov 26, 2015
a2efd70
Fix read
dsoellinger Nov 26, 2015
ec00ebf
Fix read
dsoellinger Nov 26, 2015
c152af9
Fix read
dsoellinger Nov 26, 2015
871943d
merged into selfie-master
mfm92 Nov 26, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
out
selfie
myprog
*.mips*
*~
out.txt
4 changes: 3 additions & 1 deletion AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@ Martin Aigner <martin@maigner.net>
Christian Barthel <cbarthel@cs.uni-salzburg.at>
Christoph Kirsch <ck@cs.uni-salzburg.at>
Michael Lippautz <michael.lippautz@gmail.com>
Simone Oblasser <simone.oblasser@cs.uni-salzburg.at>
Simone Oblasser <simone.oblasser@cs.uni-salzburg.at>
Dominik Söllinger <dominik.soellinger@sbg.at>
Michael Ferdinand Moser <mfmoser92@gmail.com>
54 changes: 54 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
CC := clang
CC_OPT := -w -m32 -D'main(a, b)=main(int argc, char **argv)'
EXEC := selfie
MEM_SIZE := 64
RTS1 := 2
RTS2 := 10
RTS3 := 100
TEST_INPUT := test.c
TEST_BINARY := myprog

all: test_binary

clena: clean
clan: clean
clane: clean
claen: clean
cean: clean
calen: clean
clea: clean
cclean: clean

self_host:
touch $(EXEC)1.mips
$(CC) $(CC_OPT) $(EXEC).c -o $(EXEC)
touch $(EXEC)2.mips
./$(EXEC) -c $(EXEC).c -o $(EXEC)1.mips -m $(MEM_SIZE) -c $(EXEC).c -o $(EXEC)2.mips
diff -s $(EXEC)1.mips $(EXEC)2.mips

test_different_time_slices:
./modifyTimeslice.sh $(RTS1) $(RTS2) $(RTS3)

test_binary:
$(CC) $(CC_OPT) $(EXEC).c -o $(EXEC)
touch $(TEST_BINARY)
./$(EXEC) -c $(TEST_INPUT) -o $(TEST_BINARY)
./$(EXEC) -l $(TEST_BINARY) -m $(MEM_SIZE)

compile:
$(CC) $(CC_OPT) $(EXEC).c -o $(EXEC)

self_execute:
$(CC) $(CC_OPT) $(EXEC).c -o $(EXEC)
./$(EXEC) -c $(EXEC).c -o $(EXEC)1.mips -m 64 -l $(EXEC)1.mips -m $(MEM_SIZE) -c $(EXEC).c -o $(EXEC)2.mips
diff -s $(EXEC)1.mips $(EXEC)2.mips

clean:
rm -f *.mips*
rm -f $(EXEC)
rm -f out
rm -f $(TEST_BINARY)
rm -f out.txt
rm -f *~
rm -f *.s

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,4 +145,4 @@ clang -w -m32 -D'main(a, b)=main(int argc, char **argv)' selfie.c -o selfie

After that, you can proceed with the same commands as for 32-bit Linux.

The `-w` option suppresses warnings that can be ignored for now. The `-m32` option makes the compiler generate a 32-bit executable. Selfie only supports 32-bit architectures right now. The `-D` option is needed to bootstrap the main function declaration. The `char` data type is not available in C\* but required by `clang`.
The `-w` option suppresses warnings that can be ignored for now. The `-m32` option makes the compiler generate a 32-bit executable. Selfie only supports 32-bit architectures right now. The `-D` option is needed to bootstrap the main function declaration. The `char` data type is not available in C\* but required by `clang`.
24 changes: 24 additions & 0 deletions modifyTimeslice.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash

CC=clang
CC_OPT="-w -m32 -D'main(a, b)=main(int argc, char **argv)'"
EXEC=selfie
MEM_SIZE=32
TEST_INPUT=test.c
TEST_BINARY=myprog

emulate() {
clang -w -m32 -D'main(a, b)=main(int argc, char **argv)' selfie.c -o selfie
touch myprog
./selfie -c test.c -o myprog
./selfie -l myprog -m 32
}

sed -i -E "s/int instr_cycles = .*;/int instr_cycles = $1;/g" selfie.c
emulate
echo "-----------------------------------"
sed -i -E "s/int instr_cycles = .*;/int instr_cycles = $2;/g" selfie.c
emulate
echo "-----------------------------------"
sed -i -E "s/int instr_cycles = .*;/int instr_cycles = $3;/g" selfie.c
emulate
Loading