Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso...

19
1 Operating System 2018-04

Transcript of Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso...

Page 1: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

1

Operating System����������

2018-04

Page 2: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

2018 H. SHIOZAWA http://vilab.org

2

NUHG5:

p NUHGXprocessY5:n #�03'�"�(9NUESO

n FVMRWI9�4'�,3,?<9(XCPU@�23,?<9Yn OS8=23:Z 1��4)IGD*XtaskY5<,-

p OS8=?NUHG9 �n NUHG9��XNUESO9$�5PQT��Y

n NUHG9��XNUESO9��5PQT$�Y

n NUHG9>�.Z��%�9 �Z7676…

p NUHG9'��(@Z=>LWKBCA�8!.?5…n )�,3,?* or )�"�* 5: [ CPU4���@03,?n )NUESO5JWI/+?*5: [ PQT9&�@�;3,?

Page 3: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

2018 H. SHIOZAWA http://vilab.org

3

�4Windows�+0%$p &$ ,)2#-2

n Ctrl+Alt+Del → [&$ ,)2#-23���4]n Windows�*2#/1�������� �����

p tasklist !,1( 3!,1(+01+'4n tasklist | moren tasklist /? | moren tasklist /v /FI “username eq .2""

p Sysinternals�!,1(n http://technet.microsoft.com/ja-jp/sysinternals/n pslist ←tasklist�����n pskill ←+0%$����n pssuspend ←+0%$�����

Page 4: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

2018 H. SHIOZAWA http://vilab.org

4

5>(:7!>A1��

5>(:7#/A-#89; ��%��$B3&6?�C

OS'A2<

5>,+A /A-��

��

���!�"�"B>A1C

��!89;6.5

5>,+A )A1��

5>,+B /A-��

5>,+B )A1��...

+0=A*

���%�5>(:7A

=*+-1=*+-2=*+-3@@@4:(

/A-

��

��!�"�"

/A-!�"��

CPU

CPU�1������$

Page 5: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

2018 H. SHIOZAWA http://vilab.org

5

OPSY�!�Z4+*6

p ���OPSn RAM: #6�) 2OPSn ROM: #6�+��OPS

p :HU@Y��Zn OPS4�5$+��4��(.'/'8

n � 4PC05[:HU@51K;G�n CPU5[��:HU@0FXB9��-8

p J;MW�:X=E>CQn LV?RN7FXB1�,�!�3��-8

n LV?RN4��5[%��"&4FXB�

n ��"4�: 10110000 01100001 OPSMDL

LVA@A

LVA@B

OSY<XITZ

�)

...

��

Page 6: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

2018 H. SHIOZAWA http://vilab.org

6

CPUA\dNa^�!p ��%

n CPU4�!=5HABh/��%0>�CIH2(�A�n ��%BCPUfMPUh]KMd\dSVPgA��7>@�?H

p CPUA�!�,1. [LVU _`b3G�fOeY��gJ1;&D6E2. WOeY �fOeY��gJ"&9H

3. �! _`bFcQRTA��J&D�8h��J�!9H

4. aKXZVM �� �J_`bFcQRT@�5�9

p cQRTfregisterg>Bin CPUA�)@1H+�@.':4 �*A$�-n #��AWeTA�hCPUA���!��J��8<2H

Page 7: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

2018 H. SHIOZAWA http://vilab.org

7

?G65*! �3H915;"K ���L(#$

?G65* ���

3J< �?G2DA��

��:J7 �

�%

5781 �K����L

=J? �

?G65��K?G65)�,�'+-&BCE��L

��*CPU*��K��F457L

��F4571 �1��F4572 �2��F4573 �3

III?G2DA0/H7 �[email protected] �B>D2F457 >D2��

�A

�B

� ��*��

5781*;8?

Page 8: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

2018 H. SHIOZAWA http://vilab.org

8

R\QZUSP]R\QZW[TS^

p R\QZUSPDI`n OS8�)��N%!C9MW[TSI_31A4>:]R\QZ^n HW[TS8��G&�;F6D_�HW[TSN- C9F6

p R\QZUSPH�1�n W[TS8VOSP*(H+K�9FEC$0#G�J@B6M0_

CPUI�L=<G�@B6M;7F6 ⇒ CPUH"��8�6n '��H26W[QYX85@BL_ ��)�HW[TSH��&�N�A;7F6 ⇒ �.F,�/�8C9F6

W[TSAW[TSBW[TSCW[TSD

�0-

��G&�����?C��

Page 9: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

2018 H. SHIOZAWA http://vilab.org

9

WZTSQO\WZTV[RQ]p WZTSQO<A_

n 19@CPU;$�@V[PYXK\%/3�](��?)�";1Hn @V[RQ0 �5:,>2:C^�5,V[RQK&�;1H

p WZTSQO@��LNULn +HV[RQ0UMQO#!@�>=;�'�?�B8:,H'^�@V[RQ?�,:,HCPUK�J6H

n 4F?^�"V[RQK�/,�';�*?�G�.:^���"?��5:,H/@E-?%6/3H

V[RQAV[RQBV[RQCV[RQD

�'&�

���7D�'�I;����

Page 10: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

2018 H. SHIOZAWA http://vilab.org

10

=E65)����p >C8752( "-=E65G5D9;H)��

�����GCPU)�!�#H

���GCPU3/.��H

�#��

��)����G�,�+'&H)���#

��,G=B1F=4AFH

:05<98

��G��H� G?@B�,$H CPU)3/�*%

�(�����

Page 11: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

2018 H. SHIOZAWA http://vilab.org

11

SbVY

p SbVYgthreadh@Dn ��C]^a .M�;A3 0*3[cTS1C8@

n �$C�%QeWOSXM�=5i]^aD(C[cTS@��:L

n #F+FOSC��i[cTSD�)�BSbVYC��5�3

p SbVYC�,n 1=C[cTSC�Bi9JB�2B 0�7GC1M�L8@5?6Ln '�C��C���%BI<>[cP`\M/-�:L

n ]NeC��C0&1?_fRHZVXdfO4JC�B��:L

p [cTSB�E;�n [cTSB�E>i��HQeWOSXSNVUC��5-3

n ]^a��5A3C?i[cTSIKGOSBIL!�5 "�?6L

Page 12: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

2018 H. SHIOZAWA http://vilab.org

12

XaPO/O`SUA!�p XaPOA)�-�

n XaPOBe)AXaPO2!�8GcXaPO!�"APIJ�0dn ��AXaPOBf ⇒ OSKbV_2!�8G

p Y_RQOL �=Bn )XaPO2�XaPOJ!�8G>e�%B�'#@��8G

n )XaPOBe/4;D�XaPOJ+ 7<�.@�J'I9e�(?F$���J�;5>2=3G

p UNIXAfork/exec/join\T_n fork: &AXaPOA,J�Gc[\^E*�JCGCGNWbdn exec: XaM]ZJabU7e&AXaPOA��J�H�1Gn join: fork6H:XaPO��2��8Gcexit & waitd

Page 13: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

��� ������

2018 H. SHIOZAWA http://vilab.org

13

wait

fork

exec

��� ���

���� ����

����

CreateProcess

exitExitProcess

����������

����������

Windows���� ����� UNIX���� �����

Page 14: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

2018 H. SHIOZAWA http://vilab.org

14

^gWVE$�i !#

p ^gWVE$�#1. Qj\e�Dm�=75^gWV(#]gYR6M�J�BK

2. ^gWVE@GEabdk�.�lE4�M&�>K

3. ^gSc`Tj[M0F1FmZjX4�HVXYR4�M/�>K

4. �+2��EfUVX'E�M�/�>K

p ^gSc`QOhXmVXYR_NhXm?E�…5. 5�+ *"�6D=BmOSD�+<LKEM�A

p ^gWVE !#1. OS:(#>K�+ *C^gWVE�,9I�3>K2. ^gWVD�J�BIL@abdM-�>Kk��%D�>l

3. ^gWVE)�Tj[k��)�9Pcj9lM��=B8;

4. Qj\e�E5^gWV(#]gYR6M�3>K

Page 15: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

2018 H. SHIOZAWA http://vilab.org

15

25,+��!�p '804�!25,+�

n '804 ;25,+�15-(925,+.814:������#

n �25,+!����%� ��;'804�����#

n 25,+!���)7.(+/�"�� ���$#

25,+196825:

25,+3913&*:

25,+29���:

'804

25,+�15-(

���

Page 16: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

!.8?������

p 8? 4a HOSZGJcmkh�s|lk�[�3n K[8?[#D\�mkhI1TRJ[s|ixue�3M�mkhe�SQs|ixt}i[��e%5NcKWVCc@

n �2ZOS\�mkh[&�~;�~,�~� +[�0eFUGb�Pda[�%[Q_[API�<��e��MUDc@

n -^:^OSVCcHOSV\�mkh\OS[�[�<�WMU��Ld�OS[�[k{opWMU �Nc�$1[vwye�QYD�@

p �>n rgzn hos-v4¥sample¥win-task [�e)6Nc@n sample.sln e;DUj}qfz~�3Nc@n (=4*e)6M�XEMUPEYc[H/��%'e7��O`@

n "Z�dly_tsk\X[`EY�%e3SUDc[H9]U/�O`@n AµITRON���Be�/Z�%�e/FcW`D@

2018 H. SHIOZAWA http://vilab.org

16

Page 17: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

"+3:r����s

p 3: 4b HOSS@D[knecb_jo`mlp`n ET3:T$=Utknecb_T��\%0H[EPO<[;

n knecb_�%B�-ROSOUt�/�Tcb_\����GNtTcb_S�/\�Z�?[EPBOC[;

n HOSOUt�/�Tcb_B.Y�!)T�%\H[EPSXLNt�%\����GN�Tcb_S�/\�Z�?[EPBOC[;

n JTKWStOSUcb_T�/apf_bg\46q��H[;

p �9n i^nd hos-v4¥sample¥win-multitask T��\'1H[;n sample.sln \7=Naph]nq�/H[;n �* \(GtQ>GNJ>R[TA,�r%&\2�sIX;

n #Sttask1Ptask2T�%Tc]lp`SM=N,�IX;n FYStdly_tskT��r5��8s\ �GNV[PX=;

2018 H. SHIOZAWA http://vilab.org

17

Page 18: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

HOS6µITRON7)10-��

2018 H. SHIOZAWA http://vilab.org

18

/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

Page 19: Operating Systemvilab.org/os2018/OS2018-04.pdf · 2 nuhg5: pnuhgxprocessy5: n# 03' " (9nueso nfvmrwi9 4' ,3,?

HOS<µITRON=*652��

2018 H. SHIOZAWA http://vilab.org

19

4;853;: � ��

dly_tsk delay task �652*!�<��#��=

slp_tsk sleep task �652*��<�����)=

tslp_tsk ��<609/17&.=

wup_tsk wake up task 652����

iwup_tsk ��<�. ,�=

can_wup cancel wakeup 652����*�.�(

rel_wai release wait �)��* ��%

irel_wai ��<�. ,�=

sus_tsk suspend task ��)��+*�$

rsm_tsk resume task ��)��'-*�"

frsm_tsk force resume task ��)��'-* ��"