comparison slides/2018/04/06/memo.txt @ 25:387ca051646f

auto-Update generated slides by script
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Fri, 06 Apr 2018 19:35:48 +0900
parents
children
comparison
equal deleted inserted replaced
24:9e4ebb0c92bb 25:387ca051646f
1 物理アドレスと仮装アドレスが同じ
2
3 - vector 割り込みvectorの処理
4 - lassbery-->固定のmemory map ==> 取ってくるAPIがある?
5
6 device driver --> device driverを見つけるAPIを探す
7
8 vmm -> virtual memory manager
9
10 kmain{
11 binit --> buffer cache
12 fileinit --> filetable
13
14 sti() --> set intrast
15 }
16
17 ?? -> user空間なのでkernelからはわからない(memory空間が異なる)
18
19 trapframe -> forkを読んだ際にregisterに入れる情報
20
21 fork {
22
23 np = allocproc() <- proc を 作成
24 processのメモリ空間の共有 -> copyuvmでpagetableをコピーして
25
26 user space側のstackを置き去りにして,今のr
27
28 process ごとにtrap frameを用意している
29 filedup(proc->ofile[i]) <<- リファレンスカウント方式で処理をしている
30
31 java -- リファレンスカウントではない, objective-cはautomatic refalence count
32
33 idup(proc->cwd); <- pwdをコピーする
34 sagestrcpy() <- 何故かコピーをしている
35
36 pidを返して終わり
37 }
38
39
40 errorした場合は別のcontinuationに行くtaskを書くことが出来る
41
42 CodeSegmentの中ではfor文を使っても良い、単純な処理ならinterfaceに置き換えられる
43
44 switchuvm{
45
46 OSの割り込み処理を許可する--> interactive mode
47
48 multiprocessor => どのCPUを割り込ませるのかはスケジューリングの問題 ( Programable Intractice Contorler )
49 割り込まれるCPUはわからない ( software interact を除く)
50
51 OSのメモリモデルがやっかい
52
53 interruptsはmultiprocessorで分散される
54 そのCPUでは割り込みが起こらないものをcliで制御している。
55 -> 1
56
57 push
58 誰かが禁止しているときにpopすると割り込み禁止が解除される為、禁止をする
59
60 割り込みが入る-> kernel から kernelに移行するのでuserには影響しないのでは…?
61 割り込みルーチンがuser pageに触らないはず…?
62
63 割り込み?例えばキー入力
64 uartの入力を待っているuser processがいたら?
65 そのprocessのstatusを切り替える必要がある?
66
67 割り込まれても割り込みルーチンがuser spaceに干渉しなければ良さそう
68 }
69
70 exec {
71 kernel移動
72 trapret --> assemblerで書かれている。ここでuse spaceに移動している?
73
74 ls --> ssemblerで書かれていている
75 }