Operating Systemvilab.org/os2018/OS2018-06.pdf · dly_tsk delay task 21.& slp_tsk sleeptask 21.& 8...
Transcript of Operating Systemvilab.org/os2018/OS2018-06.pdf · dly_tsk delay task 21.& slp_tsk sleeptask 21.& 8...
1
Operating System�����������
2018-06
2018 H. SHIOZAWA http://vilab.org
2
LSFE38V��W
p LSFEVprocessW38n "�/1&�!�'7LSCQM
n DTKPUG7�2&�+1+=:7'VCPU>�01+=:7Wn (GEB)VtaskW3:+,
p OS6;=LSFE7��n LSFE7��VLSCQM7#�3NOR��W
n LSFE7��VLSCQM7��3NOR#�W
n LSFE7<�-X��$�7��X5454…
p LSFE7&��'>X;<JUI@A?�6 -=3…n (�+1+=)or(�!�) Y CPU2���>/1+=n LSCQM3HUG.*= Y NOR7% >�91+=
2018 H. SHIOZAWA http://vilab.org
3
SXPOMKZSXPRYNM[p SXPOMK:?]
n 17>CPU9��>RYLVUGZ�+/�[%��=&��03Dn �>RYLVU,�F68(<.8@\�1(RYLVUG 9-D
p SXPOMK>��HJQHn 'DRYLVU,QIMK>���<;G�68(D'(4?\>RYLVU,�(8(DCPUG�*DB)=2D
n RYNMG#�=$!<OJUMVJMZTW���[9C�*8\��=��18(DB)=�3+/D
RYNMARYNMBRYNMCRYNMD
�"
����5A�"E9����
��
2018 H. SHIOZAWA http://vilab.org
4
bgXWTOB�
p �* B��n CPUB�.Im�/@7�A�$>6Gn OSNj]gDZ^KT\fK^B�(C�!9D:2
p bgXejS�(n ,�BejS5Qi_djWI$:GE3@Rj^5�!>6G
n 1�>B�$>Cm �A,�BV`[LMJI�4GE3A@G
p ��@�(BahUTn ^YOPfLi\k+l>��9'8GE3@�"5�!>6G
n 1GahUTI�*�Am;HEF���B02ahUT5%#9<��m��9=��>6G
n ���.A)�&A-�:GahPfc@?5�FD:2
2018 H. SHIOZAWA http://vilab.org
5
ci]\ZVF(5p _kbhUkb^SaDci]\ZV
n �q �/�ci]\ZVp$�ci]\ZV
n OSGIBRCCPUF�3*"Q>D6n OSG�.�Fbj[Z8LCPUQ��MnbhUkbYgkoA:D6n �bj[ZGp2�D\TdkWA-�%l�&%ECPUF�#�Q Fbj[ZE0LD<OHDLD6
n OSFAPIQ�#�Ep��9OSE'Mp Fbj[ZE�M�PNn �q 16bit��FWindowsKMacp+1OS)nHOSF�!�o
p bhUkb^SaDci]\ZVn ��Fci]\ZV
n OS9\Tcm M1J)Q�#>@CPUF�3*"Q?Nn OSGp2�D\TdkW=BEp�.�Fbj[Z8LCPUQ��MnbhUkbYgko>@p Fbj[ZQ�M�7N
n �q ��,D+J1JYZ^eQ4;pIBRCFXk`fm\
2018 H. SHIOZAWA http://vilab.org
6
4;.-%� ��p 5:0/-+$��(4;.-%��
n ��#OS%�
���
Ready
��
Run
� �
Wait
��%����>�'�&#"?
%���
49*<4,8<>��'=��?
2)-310>�'�!?
��>��?��>679�'�!?
2018 H. SHIOZAWA http://vilab.org
7
UNIX/Linux2��*
�&�%��RCPU2!-�0S
�&��RCPU7��S
�0��
�(2���(R��6)3"S
2���0
FL9OF<KOR� 6P��S
C8=DA@R6�1S
#���RHIL6�1S
?OE��R$�/.��S
��
����R����S
JQ;4�2FN>=,52����'+
R<=BG:QMS
2018 H. SHIOZAWA http://vilab.org
8
�KQEC3�5�!
p Run → Readyn OS"��3KQEC8� &V��8�247(TKO<RKANRU
p Run → Waitn KQEC"HI;C103���+2�,-� (6
p Ready → Runn OS"CPU2�& KQEC8�5-6TH:CJGFUn =MST�+��U.��8��
p C?BMSOR>n CPU.KQEC8�(6��T��U8��(6$/n ��(6KQEC8�#�%)*5V��/��8��(6
n ��2�'*��1C?BMSOR>9P@ODL"�6
2018 H. SHIOZAWA http://vilab.org
9
26-,*48
p 26-,"���'��$��� ���%�n 26-,*48:)805�!�%26-,"���
n 26-,��16/+#"3(7.�9���!� �&��%
���26-,
26-,
26-, 26-, 26-, 26-,
26-, 26-,
26-, 26-, 26-, 26-,
�� �
�� �
��*48
����*48
2018 H. SHIOZAWA http://vilab.org
10
=GL MQueueNp =GLMQueueN38
n )�0 �*3".:9 M���7 �MmatrixN38�%�Nn �,;�12+9 �;!/DLB�$
n ' ← ( ( ( ( ( ( ( ( ( M@LEL7I?54N
p FIFOM������Nn First In First Out n ��68O��&6��.:9DLB�$
n �P LIFO MLast In First OutN Q @BC>
p � ��=GLMOS�#Nn �)ID<=GL*)HK=GL*
n CPU7�-;�12+9� ����7FJA@7�0 �
2018 H. SHIOZAWA http://vilab.org
11
^dXWURE����p `acF]eVU:BD�A7K
n `acF��61>@ �G=2CHE
n %�E]eSb_Mj�'�D��D(G)NA489BF��
p ;5;jCPUF�A7C2n 1?ECPUTO6�$A7K��F1?n �$]eVUMj/,D�0B�J�3K�"6�&DCK
p TfZRU[UPYXh�#�J�3in �$]eVUETfZRU[h+� -iMQg\d�D��*.;j
n *.;@1>=E]eVUETfZRU[M(G�;@��;=B9L5I!$<K `ac^Y]
]eVUA
]eVUB
OShQg\di
�7
...
CPU
�$�
2018 H. SHIOZAWA http://vilab.org
12
=E43(���1F7/39 I����J&!"
��1F7/39
1H:�=E0B?��
��8H5�
�#
356/�I����J
;H=�
=E43��I=E43'�* %)+$@AC��J
���(CPU(��
��D2351 �1��D2352 �2��D2353 �3
GGG=E0B?.-F5 �A356/>,F5 �B<B0D235 <B0��
�A
�B
�����(��
356/(96=
2018 H. SHIOZAWA http://vilab.org
13
JPIGGCFLRNQB
p GCFLRNQB59n GCFLRNQB V GCFLRO?�;>
n CPU4JPIG?�$1>�&S'�T?"�1>.5n �%7�03�)6GCFLRNQB@ODNHK,*>
p GCFLRNQB8��n CPU8���?<=(;>n �& :8�!�&?<-1>
n ��8���S#��T?��/2>
p JNAQJEMQS��=Tn OS,�$JPIGSCPU��T?���7�=�+>.5n -8GCFLRNQB@ODNHK9UJNAQJEMQ,�
2018 H. SHIOZAWA http://vilab.org
14
��������������
p �� ��������n FCFS: First Come First Service
p ��� ��������n SJF: Shortest Job First
p ��� ��������n EDF: Earliest Deadline First
p �����������
p ���������������n RR: Round-robin
2018 H. SHIOZAWA http://vilab.org
15
��!IDHQWSVC
p FCFSIDHQWSVCn First Come First Servicen ��5�.NUJI&<X��5FWMI?�*=
p NSAVNGRV6��n 4+ ⇒ ��57GVCTKIB6.:6��4IDHQWSVC
p ��5.3%19=3…n EWPJVKW2XEWP�5�)�@/�&<!5EWP'2(=
n �6�'�>=82X�6�7,03 01$=
p ��n ��'��2X��'��2#=
n "�7Y ⇒ -;-;OTLKIB3 %4$
2018 H. SHIOZAWA http://vilab.org
16
�#�+,OLNRWTVK
p SJFOLNRWTVKn Shortest Job Firstn �B#.�+:%HF��0D,!=CF
p QTJVQMSV>��n �"=?Z<5 X.86I�A6QUPO?��5<.Y
n QTJVQMSV�E=�& ⇒ Shortest Remaining Time First
p ��� =6;/9@F;…n *>�<. -0D�2��3F
p ��n QUPO>���7�+1��=<F
n �-�[ ⇒ �(�+?�'�=)$BG<.4;1.
2018 H. SHIOZAWA http://vilab.org
17
�(�,.URT^d`cQ
p EDFURT^d`cQn Earliest Deadline First n 1'F�I26�"*3[bVU5H�(;J
p [`Pc[S_cn GI'F�ID*3[bVU6#!:=Hg<KC�I�LJ
p �%�C=@4>EJ@…n #� D�30(�D�5Hg��$C���&7M;J
p ��n b\XZD��BAg`NaWO]e��+f?�8SUY]�9
n �/�h ⇒ �)6-:8g�@:>��DRdU6��:C83
2018 H. SHIOZAWA http://vilab.org
18
���TQSY_[^P
p ���TQSY_[^Pn $�2I7���/+,W]UT.F�#5H
n ���/�4�@cFCFS=<�?TQSY_[^P:�G�9H
p W[O^WRZ^n EG���?+,W]UT/!�37Fc6I>�G�JH
p ��"�>7;-9CH;n " (�>�L:,9c�/�7F& K%F=1IA=F=,
p ��n [M\VNXOS�0 `ITRON@FCFSb���an �'�e ⇒ ,8B:D��3>=HW]UT/!� d )*��
2018 H. SHIOZAWA http://vilab.org
19
nZqfpgqb_alsoq^
p Round-Robinb_alsoq^n dYisT7RX&Fv�hpcbX���9PdYkbnYbt]\qdkdYkv��x�(jo+uL�T�@K�2FK>C
n <�I�T=PDMX15LQRound-robinM>?
p ho[qh`mqn dYkbnYbA/8FHhpcbQ �TEVv!O:'X6U
p #�n �,r��Lv�O$�3*A�4N�9)�P`bekO�C
p ���JBnZqfpgqn UNIXvLinuxvWindows,LQRRO���X.R WGK>Un �;"w ⇒ �9-%S�T�@0�P�%A�>
2018 H. SHIOZAWA http://vilab.org
20
�#&)^����_
p &) 6a ROQW]Y\NLZPYSVn ��<��AF.? )1�4J8*
n 3JGKOSA+FCFS,`+SJF,`+EDF,`+XM\T[U\,A��=�?$/�<ROQW]Y\N6I=`>AF.?(�@��5;>AF.?!�@?I0%�5?4-*
�� �)� "D�H 00I�'
A 6�1� 6�11� 5�'B 6�2� 6�30� 7�'C 6�4� 6�15� 3�'D 6�5� 6�8� 1�'
n �)A���A8D`1�@�H DI )A�B1:92=6I*n C8` )B�)4J87A�0G�H DIEA=6I*
�'/5g����h
p /5 6b HOSJ:=SFCFS+���\Y[`fbeXn >K/5K�8Li�3K^dXa_eXJQDFiFCFS\Y[`fbeXH���\Y[`fbeXK�%NV +@S>HG7S6
n HOSLZe^cI%N1NOSIKGi�"I\Y[`fbeXLiFCFSg�#4hH���JQSOKG7S6
n FCFSL]\WK0�4i���L]\WK, ��JQDF�MS6
p �4n sample¥win-scheduling VgCKMMh�)@S6n �)&�V$?iIBCKQ9I��@SK;i\Y[`fbeXK*�;R(�g !V.�hAQ6
n �]\WK���P start 2�GK�)4�V��?F8<E;K%NUAV-?iCTRK��JE8F(�AQ6
2018 H. SHIOZAWA http://vilab.org
21
!+28z����{
p 28 6c HOSM=@SkxntZxngWmLoufeb\n AN28N#;O|kxntZxngWmLz3(L{oufeb\N��KGNHPNnw]spx]��U%0DSAKJ:S9
n ntZxngWmJL;OSJO|nwcbzeb\{?5�LeXpx]J-�(M�.�U��DAKJ� Loufeb\U�$DS9
n HOSN �|vhW[ryU�CI�Neb\U�.DS rot_rdqzrotate ready queue{K;<`ylb_yuzAPI{U�&DS9
p �7n 286bJ��CH sample¥win-scheduling U�M�D9n dyb_yjJ_qxiVYiBTI;Seb\N rot_rdq 6�U��MC|eb\?-�(M�.�U�Neb\M4SQ<MEQ9
n �.*�U)C|LFGNQ<L��DSN>|b^arytx]N/">R,�z%'U1�{EQ9
2018 H. SHIOZAWA http://vilab.org
22
&29=~����
p 9= 6d HOSVDH^xd|q{r|khjw}y|gn IW9=W)AX�xd|q{r|khjw}y|gV[^tye|tobsU~.W�uznmkfW�0Y`*7L^ITS@^?
n xd|q{r|khjw}y|gSX�OSF���$S�4t{lk`<,V~EQ��-V��]"CRAG�5F@^?
n OWPZVmcu} ]:YSkhjw}x}`>�K�t{lkW�]"C`4B?HOSSX ]:Y��(W irot_rdq`�B?
p �<n 9=6cS�!KP sample¥win-scheduling `�V�L?n ~���mcu} ]:Y�*S@^ ostimer.c W�Siv|padpJ_RA^ if �T irot_rdq W;`#�VKR�4L^?
n �41%`/K�UNOW[BU��L^WE�khjw}y|gW6'E\3�~*+`8 �M[?
2018 H. SHIOZAWA http://vilab.org
23
�+��� �!&�$#'���
p ��� )45�,*n 1�� 6��������������
p !&�$#'���n 1�� 6�����������
n %"( �������
2018 H. SHIOZAWA http://vilab.org
24
HOS6µITRON7)10-��
2018 H. SHIOZAWA http://vilab.org
25
/520.54 � #�
cre_tsk create task 10-)��
acre_tsk ��6ID!��+�(7act_tsk activate task 10-)$�
iact_tsk ��6�+&*�7
can_act cancel activation 10-$���)+�'
ext_tsk exit task !10-)��
ter_tsk terminate task 10-)����
chg_pri change priority 10-���)��
get_pri get priority 10-���)�
rot_rdq rotate ready queue �"� ,35)�%
irot_rdq ��6�+&*�7
HOS8µITRON9&21.��
2018 H. SHIOZAWA http://vilab.org
26
0741/76 � ��
dly_tsk delay task �21.&��
slp_tsk sleep task �21.&��8��� %9
tslp_tsk ��82,5+-3"*9
wup_tsk wake up task 21.���
iwup_tsk ��8�*�(�9
can_wup cancel wakeup 21.���&�*�$
rel_wai release wait %��&���!
irel_wai ��8�*�(�9
sus_tsk suspend task �� %��'&�
rsm_tsk resume task �� %��#)&��
frsm_tsk force resume task �� %��#)&����