Packet

¡iĶ¦W¡j«Ê¥]

¡i»¡©ú¡j¦bºô¸ô¤¤¶Ç¿é¸ê®Æ©Ò¨Ï¥Îªº«¬ºA¡A¥¦§â¸ê®Æ¤Á³Î¦¨¤@¤p¶ô¤@¤p¶ô¡]chunk¡^ ¡A¦A¥[¤W±ý°e©¹¤§¥Øªº¦aªº¹q¸£¦ì§}¡AµM«á³z¹Lºô¸ô¤À§O¶Ç°e¥X¥h¡C

Packet Switching

¡iĶ¦W¡j«Ê¥]¥æ´«

¡i»¡©ú¡j³q°Tºô¸ô¥i¥H¤À¬°½u¸ô¥æ´«¡]circuit switching¡^»P«Ê¥]¥æ´«¡]Packet switching¡^ ¨âºØ¡C«Ê¥]¥æ´«±Ä¥Îªº§@ªk¬O©Ò¦³±ý¶Ç¿é¸ê®Æªº¹q¸£³£¦@¦P¨Ï¥Î¤@­Óºô¸ô³s½u¡A¦ý¬O¸ê®Æ¥²¶·¤Á³Î¦¨³\¦h¤p¶ô¡A³o¨Ç¤p¶ôªº¸ê®ÆºÙ¬°«Ê¥]¡]Packet¡^ ¬O¶Ç¿é¸ê®Æªº³Ì¤p³æ¦ì¡C¥Ñ©ó¨C­Ó«Ê¥]³æ¿W¶Ç°e¡A©Ò¥H¨C­Ó«Ê¥]³£¥²¶·¥]§t¥Øªº¹q¸£ªº¦a§}¡A«Ü¦hªº³q°T¨ó©w¤]³]©w«Ê¥]¥]§t¦Û¤v(¶Ç°eºÝ)ªº¦a§}¡C

OSI ¼Ò«¬ªº¤C¼h¡A¹ï¸ê®Æªº³B²z³æ¦ì³£¦³¨Ç¤£¦P¡C«Ê¥]¬Oºô¸ô¼hªº¸ê®Æ³B²z³æ¦ì¡A¦Óºô¸ô¼h¤]­t³d«Ê¥]ªº¶Ç°e±±¨î¡C

¡i°Ñ¦Ò¡jpacket¡C

page daemon

¡iĶ¦W¡jµL

¡i»¡©ú¡jpage daemon ¬O UNIX ¨t²Îªº¤@­Ó®Ö¤ß³B²zµ{§Ç¡]kernel process¡^¡C¨ä³B²zµ{§ÇÃѧO½X¡]process ID¡^¬° 2¡C¨ä¥\¯à¬O¦b±Ä¥Î»Ý¨D¤À­¶ªºµêÀÀ°O¾ÐÅé¡]virtual memory¡^ºÞ²z¨t²Î¤¤¡A±N³B²zµ{§Ç¦ì§}ªÅ¶¡ªº¸ê®Æ¼g¤J¦¸­nÀx¦s³]³Æ¡]secondary storage device¡^¡A©Î¬O¥Ñ¦¸­nÀx¦s³]³Æ§â¸ê®Æ¼g¨ì³B²zµ{§Çªº¦ì§}ªÅ¶¡¡C

¡i°Ñ¦Ò¡jprocess, kernel process, process ID, BSD¡C

Page fault

¡iĶ¦W¡j¤À­¶¿ù»~¡B¤À­¶¥¢»~

¡i»¡©ú¡j·í³B²zµ{§Ç°Ñ¦Ò¨ì¨äµêÀÀ¦ì§}ªÅ¶¡ªº¤À­¶¡]page¡^®É¡A¥Ñ©ó¸Ó¤À­¶¦¹¨è¨Ã¤£¦b¥D°O¾ÐÅ餤¡A¬G¨t²Î·|²£¥Í¤À­¶¥¢»~ªº°T®§¡A±µ¤U¨Ó¨t²Î´N·|±Ä¨ú»Ý¨D¤À­¶¡]demand paging¡^ªº°Ê§@¡C

¡i°Ñ¦Ò¡jdemand paging¡C

Page table

¡iĶ¦W¡j¤À­¶ªí®æ¡B­¶ªí

¡i»¡©ú¡jUNIX ¨t²Î²{¦æºÞ²z°O¾ÐÅ骺¤è¦¡¬O§Q¥Î¤À­¶¡]page¡^ªº°O¾ÐÅéºÞ²zµ¦²¤¦Ó«Øºc¦¨ªºµêÀÀ°O¾Ð¨t²Î¡C

¦b¦¹¨t²Î¤U¡A¥D°O¾ÐÅé³Q¤Á³Î¦¨¦P¼Ë¤j¤pªº¬q¸¨¡A¨C­Ó¬q¸¨«KºÙ¬°¤@­Ó¤À­¶¡A¨C­Ó¤À­¶ªº¤j¤p±q 512 ­Ó¦ì¤¸²Õ¨ì 4096 ­Ó¦ì¤¸²Õ¤£µ¥¡A§¹¥þµø¨t²Î¦Ó²§¡C

¦Ó¤À­¶ªí®æªº§@¥Î´N¬O±NµêÀÀ°O¾ÐÅ骺¤À­¶¬M®g¨ì¯u¹ê°O¾ÐÅ骺¤À­¶¡]physical memory page¡^¡C¦³ªº§@·~¨t²Î®ÑÄy±N¤§ºÙ¬°¤À­¶¬M®gªí¡]page map table¡A²ºÙ PMT¡^¡C

Panic

¡iĶ¦W¡jµL

¡i»¡©ú¡j©Ò¿×ªº¡upanic¡v¬O«ü¨t²Î®Ö¤ß¡]kernel¡^°»´ú¨ì¤@­ÓµLªk´_­ìªºÄY­«¿ù»~¡C°w¹ï¦¹¡ABSD ª© UNIX ¨t²Îªº§@ªk¬O­«·s±Ò°Ê¾ã­Ó¾÷¾¹¡A©ÎªÌ¬O­«·s­×¸ÉÀɮרt²Î¡]file system¡^ªº·lÃa³¡¥÷¡AµM«á¦A¦^¨ì¥¿±`ªº§@·~¼Ò¦¡©³¤U¡C

¡i°Ñ¦Ò¡jkernel, BSD, file system¡C

Parent process

¡iĶ¦W¡j¤÷³B²zµ{§Ç

¡i»¡©ú¡j·í¨Ï¥ÎªÌ¥Hfork¨t²Î©I¥s²£¥Í¤@­Ó·sªº³B²zµ{§Ç(process)¡A³o­Ó³B²zµ{§Ç·|©Óŧ¨ä¿Ë¥N¡]parent¡^ªº¯S©Ê¡C¦¹®É¥s¥Î fork ¨t²Î©I¥sªº¨º­Ó³B²zµ{§ÇºÙ¬°¤÷³B²zµ{§Ç¡A¦Ó­l¥Í¡]fork¡^¥Xªº¨º­Ó³B²zµ{§Ç§Y¬°¤l³B²zµ{§Ç¡]child process¡^¡C

¡i°Ñ¦Ò¡jprocess, child process¡C

Password

¡iĶ¦W¡j±K½X¡B³q¦æ½X¡B³q¦æ±K½X

¡i»¡©ú¡j³q¦æ½X»P¨C¦ì¨Ï¥ÎªÌ¤@­ÓªºÃ±¤JÃѧO½X¡]login ID¡^¬° UNIX ºûÅ@¨t²Î¦w¥þªº³Ì°ò¥»³]¬I¡C¹ï©ó³q¦æ½Xªº¼f·V¿ï¨ú¥i¥H¨¾¤î ¦³¤ß¤Hªº«I¤J¥ø¹Ï¡C

³q¦æ½Xªº³]¥ß­n²Å¦X¤U¦C­ì«h¡G

1. ¦Ü¤Ö»Ý¤»­Ó¦r¥À¡C¦b¦³¨Ç¨t²Î·|­n¨D¤K­Ó¦r¥À©Î§ó¦h¡C¦Ó¥B±K½X¤¤¤@©w­n¦³¼Æ­È¤Î«D­^¤å¦r¥Àªº¯S®í¦r¤¸¡C¨Ò¦p #¡B! µ¥¡C

2. ¦pªG§ó§ï¦³³q¦æ½X¡A«h»Ý©M¦³³q¦æ½X¦³¤T­Ó¦r¥À¥H¤Wªº®t§O¡C

3. SVR4¶}©l¡A¨t²Î·|¹ï³q¦æ½Xªº®É®Ä§@ºÞ¨î¡]aged¡^¡C¤@­Ó³q¦æ½X¦b¨Ï¥Î¹L¤@¬q®É´Á«á¡A¨t²Î·|±j­¢¥Î¤á§ó´«·sªº³q¦æ½X¡A¦Ó¥B¦b¤@©w®É¶¡¤º¸Ó³q¦æ½X¤£¥i§ï¦^­ì¨Óªº¤º®e¡CSVR4 §ó´£¨Ñ¤F©Ò¿× shadow password¡]¸Ô¨£ shadow password¡^ªº¥\¯à¡A¥H´£ª@¨t²Î¦w¥þ©Ê¦Ü¾í¥Ö®Ñ C2 ¼h¯Å¡C

¡i°Ñ¦Ò¡jshadow password, Trust Computer System Secuirt Evaluation Criteria¡C

passwd file

¡iĶ¦W¡j±K½XÀÉ¡B³q¦æ½XÀÉ

¡i»¡©ú¡j¡u±K½XÀÉ¡vÀx¦s©Ò¦³¤w¨ú±o±b¸¹ªº¥Î¤á¤§¬ÛÃö¸ê®Æ¡C¤@¯ë»¡¨Ó¨Cµ§¸ê®Æ¥]§t¦³¤U¦C´X¶µÄæ¦ì¡G

  1. ¥Î¤á¦WºÙ ¡]user name¡^
  2. ¥[±K¹Lªº³q¦æ½X ¡]encrypted password¡^
  3. ¥Î¤áÃѧO½X ¡]user ID¡^
  4. ¥Î¤á¸sÃѧO½X ¡]user group ID¡^
  5. µù¸Ñ ¡]comment¡^
  6. ±Ò¥Î¡þñ¤J¥Ø¿ý ¡]home directory¡^
  7. ñ¤Jshell ¡]login shell¡^

¤U¨Ò¬° passwd Àɤ¤¬Y¤@¥Î¤á°O¿ýªº¸ê®Æ¡G

passwd file.gif (4996 bytes)

¥Ñ©ó¡u±K½XÀÉ¡vªºÀɮצs¨úÅv­­¡]file permission¡^ ¬O©Ò¦³ªº¤H³£¥i¥HŪ¨ú¸ÓÀɪº¸ê®Æ¡C¦]¦¹¡AÁöµMÀɮפ¤ªº±K½X³¡¥÷¬O¸g¹L¨t²Î¨è·NÂà´«¹Lªº©_©Ç¤å¦r¡A¦ý¬°¤F¨¾¤î¹úºÝªº²£¥Í¡A¦ÛSYSTEM V 3.1 ª©¥H«á¡AÁÙ¬O±N­ì¥ýªº "/etc/passwd" ÀɤÀ³Î¦¨¨â³¡¥÷¡AÅܦ¨¤F "/etc/shadow" ¤Î "/etc/passwd" ¡C¨ä¤¤ shadow ÀÉ´N¦s©ñ¤F±K½X³¡¥÷¡A©M¤@¨Ç·s¼W¥[ªº¸ê®Æ¡C¦P®É¡A¥¦ªºÅª¼gÅv­­¤]´N¶È¶È¶}©ñµ¹¥Î¤á¥»¤H¨Ï¥Î¡C/etc/shadow ªº¨å«¬¤º®e¦p¤U¨Ò¡G

passwd file2.gif (3962 bytes)

¡i°Ñ¦Ò¡jhome directory, user ID, group IDlogin, password, file permission¡C

¡iªþµù¡j¨ì SVR4 ®É¤S¼W¥[¤F¤T­ÓÄæ¦ì¡A³o¨Ç¬O¡G

1. ±K½X¨ì´Á«e¦h¤Ö¤Ñ­nĵ§i¨Ï¥ÎªÌ¡C

2. ¤¹³\¨Ï¥ÎªÌ¥i¥H¦h¤Ö¤Ñ¤£Ã±¤J¨t²Î¡C

3. ±K½Xªº²×¤î¨Ï¥Î¤é´Á

PCB (process control block)

¡iĶ¦W¡j³B²zµ{§Ç±±¨î°Ï¶ô

¡i»¡©ú¡jPCB¡]process control block¡^¬O¨t²Î¬°¤F´x´¤©Ò¦³ªº³B²zµ{§Ç¡]process¡^¤§°õ¦æª¬ºA¡A©Ò¨Ï¥Îªº¤@ºØ¸ê®Æµ²ºc¡C¥H VAX ªº¾÷«¬¦Ó¨¥¡A¥¦ªº¡u³B²zµ{§Ç±±¨î°Ï¶ô¡v´N¬O¥Ñ¤@¯ë¼È¦s¾¹¡B°ïÅ|«ü¼Ð¡Bµ{¦¡­p¼Æ¾¹¡Bµ{¦¡ª¬ºA¦r¡B°ò©³¼È¦s¾¹....µ¥©Ò²Õ¦¨ªº¡C

¡i°Ñ¦Ò¡jprocess¡C

Peer process

¡iĶ¦W¡j¹ïµ¥³B²zµ{§Ç

¡i»¡©ú¡j¬°¤F­°§Cºô¸ô³]­pªº½ÆÂø©Ê¡A¤j³¡¥÷ªººô¸ô³£¬O¥Ñ¤@³s¦êªº¼h¦¸©Ò²Õ¦¨¡A¦Ó¦b¤£¦P¾÷¾¹ªº¹ïµ¥¼h¦¸¤¤­Ó§Oªº³B²zµ{§Ç¬Ò¥i³QºÙ¬°¹ïµ¥³B²z§Ç¡C

PEX (Packet Exchange Protocol)

¡iĶ¦W¡j«Ê¥]¥æ´«¨ó©w

¡i»¡©ú¡j¥¦¦b XNS ¬[ºc¤¤¬O¥Î¨Ó§@¤@ºØ¼Ð·Çªº¸ê®Æ¬yªA°È¯¸¡A¥i¾a©Ê§C¥B«D©T±µ¦¡¡A¦ý¦³­«½Æ¶Ç°eªº¥\¯à¡C¦b 4.3BSD ¤¤¡A¨Ï¥ÎªÌµ{¦¡®w§Q¥Î IDP ¸ê®Æ³ø´¡®y¡]datagram socket¡^¨Ó¹F¦¨¦¹¶µ¥\¯à¡C

¡i°Ñ¦Ò¡jpacket, XNS, BSD, IDP, datagram socket¡C

physical block

¡iĶ¦W¡j¹ê»Ú°Ï¶ô

¡i»¡©ú¡j¨t²Î¹ê»Ú¦s©ñ¦b¦¸Àx¦sÅé¤Î³B²z¸ê®Æªº³æ¦ì¡C¤@¯ë¬O¥Î1024­Ó¦ì¤¸²Õ¬°¹ê»Ú°Ï¶ôªº¤j¤p¡A¦ý¨t²Î¤£¦P§@ªk´N¤£¤@¡C

¡i°Ñ¦Ò¡jlogical block¡C

PID (Process Identifier)

¡iĶ¦W¡j³B²zµ{§ÇÃѧO½X

¡i»¡©ú¡j¬°³B²zµ{§ÇÃѧO½X¡] process ID ¡^ªºÁY¼g¡A¸Ô¨£ process ID ¤@Ãã¡C

Piggybacking

¡iĶ¦W¡j­I­tªk

¡i»¡©ú¡j¬°¤F¸Ñ¨MÂù¦V¶Ç¿é½u¸ô¤¤¤@ºÝ°e©¹¥t¤@ºÝªº¸ê®Æ®Ø¬[¡]data frame¡^»P»{¥i®Ø¬[¡]acknowledge frame¡^¸I¼²ªº°ÝÃD¡A¹E¦³¦¹ªkªº²£¥Í¡C¥¦¬O§â¦^ÂХΪº»{¥i°T®§©ñ¦b¦P®É­n°e¥Xªº¸ê®Æ®Ø¬[¤¤¡A¦p¦¹«K¥i¬Ù¤U°e¥X¥t¤@­Ó»{¥i®Ø¬[¦ÓÁקK½u¸ô¨Ï¥ÎÅvªºª§¹Ü¾Ô¡C

Pipe

¡iĶ¦W¡jºÞ½u¡BºÞ¹D

¡i»¡©ú¡j¬O¤@ºØ²³æªº¥­¦æ³B²z¤è¦¡¡C¤@­Ó©R¥Oªº¼Ð·Ç¿é¥X¥i¥H­«¾É¨ìºÞ½u¡A¦ÓºÞ½u¤S¥i­«¾É¦¨¥t¤@­Ó©R¥Oªº¼Ð·Ç¿é¤J¡CºÞ½u¥i¤À¬°¨ã¦WºÞ½u¡]named pipe¡^»P¤@¯ëºÞ½u¡]unnamed pipe ©Îª½±µ¥s pipe¡^¡A¨âªÌ¶¡¤£¦P³B½Ð°Ñ¾\¤U¹Ï¡G

¯S ©Ê

¨ã ¦W ºÞ ½u

¤@ ¯ë ºÞ ½u

³B²zµ{§Çªº¨Ï¥Î¸ê®æ ¨S¦³­­¨î ¥²¶·¦³¿Ë¤lÃö«Y
ÀɮצWºÙ ¦³ÀɦW¡A¥Î ls -l ¥i¬Ý¨ì¨äÀÉ®×Äݩʬ° p µLÀɮצWºÙ¡A¬°¨t²Î©Ò«Ø¥ßªº¼È®ÉÀÉ
¸ê®ÆŪ¼gªº¦¸§Ç ¥ý¶i¥ý¥X ¥ý¶i¥ý¥X
°O¾ÐÅ骺¨Ï¥Î¤è¦¡ ¶È¯à¨Ï¥Îª½±µ°Ï¶ô ¶È¯à¨Ï¥Î¶¡±µ°Ï¶ô
«Ø¥ßªº¤è¦¡ ¨Ï¥Î mknod() ¨t²Î©I¥s ¨Ï¥Î pipe() ¨t²Î©I¥s
§R°£ªº¤è¦¡ ¨Ï¥Î rm «ü¥O©Î¬Ounlink()¨t²Î©I¥s ¦b¨Ï¥Î§¹«á·|³Q¦Û°Ê§R°£

Priority

¡iĶ¦W¡jÀu¥ýÅv¡AÀu¥ýµ¥¯Å

¡i»¡©ú¡j³B²zµ{§ÇªºÀu¥ýÅv¨M©w¤F¨t²Î°õ¦æ¦¹µ{§Çªº¥ý«á¶¶§Ç¥H¤Î¨ú¥Î¨t²Î¸ê·½ªº½d³ò¡C¤@¯ë¦Ó¨¥¡A¨t²Î½á¤©³B²zµ{§ÇªºÀu¥ýÅv§¡¦³¨ä©T©wªº¹w³]­È¡A¦Ó¨Ï¥ÎªÌ¥u¯à¡u­°§C¡v¦Ó¤£¯à¡u´£°ª¡v¡A¥u¦³¶W¯Å¨Ï¥ÎªÌ¡]super user¡^¥i­Ý¨ã¦¹¨âªÌªºÅv§Q¡C UNIX ´£¨Ñ¤F nice ³o­Ó«ü¥O¥i¥Î¨Ó­×§ï³B²zµ{§ÇªºÀu¥ýÅv¡C

¡i°Ñ¦Ò¡jsuperuser¡C

process

¡iĶ¦W¡j³B²zµ{§Ç¡Bµ{§Ç¡B¦æµ{

¡i»¡©ú¡j³B²zµ{§Ç¬O¥Ñ«ü¥O¡B¨Ï¥ÎªÌ¸ê®Æ¥H¤Î¨t²Î¸ê®Æ¸`°Ï (segment) ©Ò¦@¦P²Õ¦¨ªº¤@­Óµ{¦¡°õ¦æÀô¹Ò¡]environment¡^¡C ¦Óµ{¦¡«h¬O¤@­Ó´¶³qÀɮס]ordinary file¡^¡C ¥¦¥]§t¤F«ü¥O¤Î¸ê®Æ¡A³o¨Ç«ü¥O»P¸ê®Æ¬O¥Î¨Óªì©l¡]initial¡^ ³B²zµ{§Çªº«ü¥O»P¸ê®Æ¸`°Ï¡C¦]¦¹¥i¥H»¡³B²zµ{§Ç¬O­Ó¥¿¦b°õ¦æ¤¤ªºµ{¦¡¥[¤W¤@¨ÇÃB¥~ªº¸ê®Æ¡C¤ñ¤è»¡¼È¦s¾¹ªº­È¡Bµ{¦¡°ïÅ|»P¨t²Î°ïÅ|¡B³Q¶}±ÒÀɮתº¼Æ¶q¤Î¿é¥X¿é¤J¸Ë¸mªºª¬ºAµ¥¡C¦]¦¹³B²zµ{§Ç¨ä¹ê¬O¥Ñ«ü¥O¤Î¤W­z¦U¶µ¸ê®Æ²Õ¦X¦Ó¦¨ªº¡CÃö©ó«áªÌ§Ú­ÌºÙ¥¦¬°³B²zµ{§Çªº¥»¤å¡]context¡^¡C

³B²zµ{§Ç¬O­Ó°ÊºAªºª«¥ó¡]object¡^¡A¤£¦Pªº®É¶¡¨ä¤º®e³£·|¤£¤@¼Ë¡C¨Ò¦p¤l³B²zµ{§Çªº²£¥Í§Y·|§ïÅܳB²zµ{§Çªº¤º§t¡C¦b¬Y­Ó¯S©w®É¨èªº³B²zµ{§Ç¤§¤º®e³QºÙ¬°³B²zµ{§Çªº¼v¹³ (process image) ¡C¦Ó AT&T ¥Xª©ªº UNIX ¨t²Î¨Ï¥ÎªÌ¤â¥U¡A¹ï³B²zµ{§Ç©Ò¤Uªº¡y©x¤è¡z©w¸q¬°¡y¤@­Ó¥¿¦b°õ¦æ¤¤ªº³B²zµ{§Ç¤§¼v¹³¡z¡]the execution of a process image¡^¡C´«¨¥¤§¡Aµ{¦¡¬OÀRºAªº¡B¦ºªº¡F¦Óµ{§Ç¬O°ÊºAªº¡BÂA¬¡ªº¡C

¬°¤F°õ¦æ¤@­Óµ{¦¡¡A UNIX ªº®Ö¤ßµ{¦¡¡]kernel¡^·|¥h«Ø¥ß¤@­Ó·sªº³B²zµ{§Ç¡A³o­Ó³B²zµ{§Ç±N´£¨Ñ¸Ó¥Øªºµ{¦¡§¹¾ãªº°õ¦æÀô¹Ò»P¤@¤Á©Ò»Ýªº¸ê®Æ¡C UNIX ¨t²Î¸Ì²£¥Í³B²zµ{§Çªº¨t²Î©I¥s¬° fork()¡A°õ¦æµ{¦¡ªº¨t²Î©I¥s¬O exec()¡C

¡i°Ñ¦Ò¡jkernel, context switching¡C

Process control block

¡iĶ¦W¡j³B²zµ{§Ç±±¨î°Ï¶ô

¡i»¡©ú¡j½Ð°Ñ¦Ò¡uPCB¡v¤@Ãã¡C

¡i°Ñ¦Ò¡jPCB¡C

Process dispatch latency time

¡iĶ¦W¡j³B²zµ{§Ç°t¸m¿ðº¢®É¶¡

¡i»¡©ú¡j¥¦¬O«ü±q¨t²Î±µ¨ì§Y®É³B²zµ{§Çªº¤¤Â_¡]interrupt¡^»Ý¨D¡A¨ì¶}©l°õ¦æ¸Ó³B²zµ{§Ç¶¡ªº®É¶¡®t¡]interval¡^¡A³q±`§Ú­Ì¥H³o¬q®É¶¡ªºªøµu¨Óµû¦ô§Y®É¨t²Îªº®Ä²v¡C¨M©w¨t²Î³B²zµ{§Ç°t¸m¿ðº¢®É¶¡ªº¦]¯À¦³¤G¶µ¡G¤¤Â_¿ðº¢®É¶¡¡]interrupt latency¡^»P¥»¤å¸m´«®É¶¡¡]context switching time¡^¡C

Process group

¡iĶ¦W¡j³B²zµ{§Ç¸s²Õ

¡i»¡©ú¡jUNIX ¨t²Î¤¹³\¬ÛÃöªº³B²zµ{§Ç¨Ó²Õ¦¨¤@­Ó¸s²Õ¡]group¡^¡CÁ|¨Ò¨Ó»¡¡A

¤@­Ó½ÆÂøªº¸ê®Æ®wºÞ²z¨t²Î´N¥i¯à·|²£¥Í¥X³\¦hªº³B²zµ{§Ç¨Ó±q¨Æ¡u¨Ã¦æ¡v¡]concurrent¡^ªºÅª¼g§@·~¡C

¥ô¦ó¤@­Ó³B²zµ{§Ç¡A¥u­n¥¦¤£¨ã¦³³B²zµ{§Ç¸s²Õ­º»âªº¨­¥÷¡A³£¥i¥H¦Û¦æ«Ø¥ß¤@­Ó³B²zµ{§Ç¸s¡A¦Ó¦¨¬°¦¹¸s²Õªº¸s²Õ­º»â¡]group leader¡^¡C©ÎªÌ¬O²æÂ÷­ì¦³ªº³B²zµ{§Ç¸s¡A¥[¤J¥t¥~¤@­Ó¸sÅé¸Ì¡C

¤@¯ë¦Ó¨¥¡A¤@­Ó·s«Ø¥ßªº³B²zµ{§Ç·|¥[¤J¨ä¤÷³B²zµ{§Ç¡]parent process¡^©ÒÄݪº³B²zµ{§Ç¸s²Õ¤º¡C

¡i°Ñ¦Ò¡jprocess, process group leader, parent process¡C

Process group leader

¡iĶ¦W¡j³B²zµ{§Ç¸s²Õ­º»â

¡i»¡©ú¡j¦b³B²zµ{§Ç¸s²Õ¡]process group¡^¤¤¦³¤@­Ó³B²zµ{§Ç¬°¦¹¸s²Õªº¸s²Õ­º»â¡AµM«á¦¹¸s²Õ¤¤ªº¨C­Ó³B²zµ{§Ç§¡«O¦³¥¦ªºÃѧO½X¡A©ñ¦b³B²zµ{§Ç¸s²ÕÃѧO½X¡]process group ID¡^Äæ¦ì¤¤¡A¥Î¥HÃѧO¥X¦¹¸s¡C

¡i°Ñ¦Ò¡jprocess, process group¡C

Process ID

¡iĶ¦W¡j³B²zµ{§ÇÃѧO½X

¡i»¡©ú¡j¦b UNIX ¨t²Î¤U¡A¨C¤@­Ó³B²zµ{§Ç³£¦³¤@­Ó°ß¤@ªºÃѧO½X¡A§Ú­ÌºÙ¤§¬°³B²zµ{§ÇÃѧO½X¡A¥¦¤]²ºÙ¬° pid¡CUNIX ¨t²Î©Ò±Ò°Êªº²Ä¤@­Ó³B²zµ{§Ç¬° init¡A¥¦ªº³B²zµ{§ÇÃѧO½X¬° 1¡A¨ä¥Lªº³B²zµ{§Ç³£¬O¥Ñ¥¦©Ò­l¥Í¡]fork¡^¥X¨Ó¡C

¡i°Ñ¦Ò¡jprocess

process lifetime

¡iĶ¦W¡j³B²zµ{§Ç¥Í©R¶g´Á

¡i»¡©ú¡j·íµ{¦¡¤¤¨Ï¥Î fork ¨t²Î©I¥s¡]system call¡^ ®É¡A¤@­Ó·s³B²zµ{§Çªº¥Í©R¶g´Á´N¥Ñ¦¹¶}©l¤F¡C ª½¨ì¥Î¤F "exit" ³o­Ó¨t²Î©I¥s«á¤~§i²×¤î¡C¨Ï¥Î exit ¨t²Î©I¥s©Ò²×¤îªº³B²zµ{§Ç¬OÄÝ©ó¦ÛµMµ²§ô¡A¦ý³B²zµ{§Ç¤]¥i¯à¦]¥~¤O¦Ó°±¤î°õ¦æ¡C ¨Ò¦p±µ¦¬¨ì SIGTERM¡BSIGHUP¡BSIGQUIT¡BSIGINT µ¥°T¸¹¡]signal¡^¡C

·í³B²zµ{§Çµ²§ô«á¡A¨t²Î·|§@¥H¤Uªº«áÄò°Ê§@¡G

1. ­«·s³]©w¥ô¦ó¥¼°µ§¹ªº­p®É­p¼Æ¾¹¡C

2. ÄÀ©ñ¸Ó³B²zµ{§Ç©Ò´x´¤ªº¸ê·½¡C

3. Ãö³¬©Ò¦³¶}±ÒªºÀɮסC

4. ±µºÞ©Ò¦³¥¼§¹¦¨ªº¤l³B²zµ{§Ç¡]child process¡^¡C¬Ý¬O­nÅý¥¦­ÌÄ~Äò°õ¦æ¡A©ÎªÌµ²§ô¡C

¡i°Ñ¦Ò¡jsystem call, signal, child process¡C

process of victim selection

¡iĶ¦W¡j¿ï¨ú­nÄ묹ªº³B²zµ{§Ç

¡i»¡©ú¡j·í¨t²Î°»°¼¥X±N¦³¦ºµ²¡]dead lock¡^ªº±¡ªpµo¥Í®É¡A¥²¶·­n¨D³¡¥÷ªº³B²zµ{§Ç¼È®É±N¸ê·½ÄÀ¥X¡A¥H«KÅý¨ä¾lªº³B²zµ{§Ç¯à¶¶§Q¨ú±o¸ê·½Ä~Äò¶i¦æ¤u§@¡C¦Ü©ó¸ÓÅý¦óªÌ¥ýÄÀ¥X¸ê·½¡H¦Ó¦óªÌÀu¥ý°õ¦æ¡H³o­Ó¹Lµ{§YºÙ§@¡u¿ï¨ú­nÄ묹ªº³B²zµ{§Ç¡v¡C³Ì±`¥Îªº¤èªk´N¬O¨Ì³B²zµ{§ÇªºÀu¥ýµ¥¯Å¡]priority¡^¨Ó§@¨M©w¡C

Process state

¡iĶ¦W¡j³B²zµ{§Çª¬ºA

¡i»¡©ú¡j¤@¯ë¦Ó¨¥¡A³B²zµ{§Ç¦b¥D°O¾ÐÅ餤¦³´XºØ¤£¦Pªº¦s¦bª¬ºA¡C¨Ò¦p°õ¦æª¬ºA¡B·Ç³Æª¬ºA¡BºÎ¯vª¬ºA¡B²×¤îª¬ºAµ¥¡C¨ä¶¡ªºÃö«Y¦p¤U¹Ï©Ò¥Ü¡C¨Ï¥ÎªÌ¥i¥Î ps -l ©R¥O¬d¸ß©Ò¦³¦s¦bªº³B²zµ{§Ç¤§ª¬ºA¡C

Process state.gif (3835 bytes)

¡i°Ñ¦Ò¡jprocess, time slice¡C

process structure

¡iĶ¦W¡j³B²zµ{§Çµ²ºc

¡i»¡©ú¡j¤@ºØ¥Ñ¨t²Î®Ö¤ß¡]kernel¡^©ÒºûÅ@ªº¸ê®Æµ²ºc¡AùØ­±¦s¤F©Ò¦³¦b¨t²Î¤º¬¡°Êªº³B²zµ{§Ç¤§¸ê®Æ¡C³o¨Ç¸ê®Æ¬O¾n¯d¡]resident¡^¦b°O¾ÐÅ餤ªº¡A¤£¹³¡u¨Ï¥ÎªÌµ²ºc¡v¡]user structure¡^·|¦]¬°³B²zµ{§Çªº²¾¥X¡]swapped out¡^¦Ó¸òµÛ²¾¨ìÀx¦sÅé¤W¡C

¡i°Ñ¦Ò¡jkernel¡C

Process table

¡iĶ¦W¡j³B²zµ{§Ç

¡i»¡©ú¡jUNIX ¨t²Î©Ò«Ø¥ßªº¨C¤@­Ó³B²zµ{§Ç³£·|¦b®Ö¤ßµ{¦¡¸Ìªº³B²zµ{§Çªí¤¤¯d¦³¤@µ§°O¿ý¡A³oµ§°O¿ý°O¸üµÛ¸Ó³B²zµ{§ÇÃö©ó±Æµ{¡B¦p¦ó³B²z°O¸¹¥H¤ÎµêÀÀ°O¾ÐÅé«ç¼Ë©w§}ªº¸ê°T¡C

process termination

¡iĶ¦W¡j³B²zµ{§Ç²×¤î

¡i»¡©ú¡j²×¤î³B²zµ{§Çªº°õ¦æ­p¦³¤­ºØ¤è¦¡¡G

1. ¥¿±`²×¤î±¡ªp¡G

a) ¦b main() ùØ°õ¦æ return ±Ô­z¡C

b) ¥s¥Î exit() ¨t²Î©I¥s¡C

c) ¥s¥Î _exit() ¨ç¦¡¡C

2. ²§±`²×¤î±¡ªp¡G

a) ¥s¥Î abort() ¨ç¦¡¡C

b) ³Q°T¸¹©Ò¤¤¤î¡C

Profile

¡iĶ¦W¡j±Ò©lÀɮסB´y­zÀÉ

¡i»¡©ú¡j¦bUNIX¨t²Î¤¤¡ABourne shell ©³¤Uªº .profile ÀÉ®×´Nµ¥©ó DOS ¨t²Î¤¤ªº autoexec.bat ÀɮסC¦b¨Ï¥ÎªÌñ¤J¡]login¡^¨t²Î«á·|¦Û°Ê°õ¦æ¡C¥Ñ©ó¸Ì­±¤]¥]¬A¤F¤@¨Ç¨Ï¥ÎªÌ©Ò»ÝÀô¹Ò¤º®eªº³]©w¡A¦]¦¹¤S¦³¤HºÙ¥¦¬°¡uÀô¹Ò³]©wÀɮסv¡C

¡i°Ñ¦Ò¡jBourne shell, login¡C

¡iªþµù¡j¦b C shell ¤U¡A¦¹ÀɮצWºÙ¬° .login¡C

Protocol

¡iĶ¦W¡j³q°T¨ó©w

¡i»¡©ú¡j©Ò¿×¡u³q°T¨ó©w¡v´N¬O¥Î¥H³W©w¹q¸£¶¡¦b§@³q°T®É©Ò¥²¶·¦@¦P¿í¦uªº®æ¦¡»P®É§Ç¡A¨Ï©¼¦¹¸ê®Æªº¶Ç¿é¯à°÷²Î¤@¤Æ¡C³ÌµÛ¦Wªººô¸ô¨ó©w¬O¡u°ê»Ú¼Ð·Ç²Õ´¡v©Ò­q©wªº¤C¼h¡u¶}©ñ¨t²Î¥æ¤¬°Ñ¦Ò¼Ò¦¡¡v¡A²ºÙ OSI ¡C

protocol family

¡iĶ¦W¡j³q°T¨ó©w±Ú¸s

¡i»¡©ú¡j¦b³æ¤@ªººô¸ô¬[ºc¤W¡A©Ò¦³¬ÛÃö³q°T¨ó©w¡]protocol¡^ªº¶°¦XÅéºÙ¤§¡CÁ|¨Ò¨Ó»¡¡GTCP¡BUDP¡BIP¡BICMP ´N¬O DARPA Internet ºô¸ôªº³q°T¨ó©w±Ú¸s¨ä¤¤¤@¤ä¡C

¡i°Ñ¦Ò¡jprotocol, TCP/IP¡C

¡iªþµù¡jDARPA¡]Defense Advanced Research Projects Agency¡^°ª¯Å°ê¨¾¬ã¨s±M®×§½¬O¬ü°ê°ê¨¾³¡¤ºªº¤@­Ó³æ¦ì¡C

protocol switch structure

¡iĶ¦W¡j³q°T¨ó©w¥æ´«¾÷ºc

¡i»¡©ú¡j¡u³q°T¨ó©w¥æ´«µ²ºc¡v¸Ì­±Àx¦s¤F¨t²Î©Ò¯à°÷¤ä´©¥þ³¡³q°T¨ó©w¡]protocol¡^ªº¶i¤JÂI¡þ¶µ¥Ø¡]entry¡^¡C

¡i°Ñ¦Ò¡jprotocol¡C

Pseudo driver

¡iĶ¦W¡jµêÀÀÅX°Êµ{¦¡

¡i»¡©ú¡j¡uµêÀÀÅX°Êµ{¦¡¡v»P¡u³]³ÆÅX°Êµ{¦¡¡vªº¤£¦P¤§³B¦b©ó¡G¥¦¨Ã¤£¥]§t¹êÅ骺¶gÃä³]³Æ¡C¹³¦h¤u¾¹¡]multiplexor¡^´N¬O¡C

¡i°Ñ¦Ò¡jdevice driver¡C

Pseudo terminal

¡iĶ¦W¡jµêÀÀ²×ºÝ¾÷

¡i»¡©ú¡j«ü¤@¹ï³]³Æ¡A¤@­Ó¬O¥D­n¡]master¡^¡A¥t¤@­Ó¬°Äݱq¡]slave¡^¡C·í¤@­Ó³B²zµ{§Ç¶}±ÒµêÀÀ²×ºÝ¾÷³]³Æ¡A«h·|±o¨ì¨â­ÓÀÉ®×´y­zµü¡C±qÄݳ¡¥÷¥Nªí¨Ï¥ÎªÌ³B²zµ{§Çªº¤¶­±¡C¨C­Ó¿é¤J¨ì¥D­nµêÀÀ²×ºÝ¾÷ªº¸ê®Æ³£·|¿é¤J¨ì±qÄݵêÀÀ²×ºÝ¾÷¡F¦P¼Ë¦a¡A¨C­Ó¿é¤J¨ì±qÄݵêÀÀ²×ºÝ¾÷ªº¸ê®Æ¤]³£·|¿é¤J¨ì¥D­nµêÀÀ²×ºÝ¾÷¡C³o­Ó¥\¯à±q SVR3.2 ¥H«á¤~¦³´£¨Ñ¡A¦Ó BSD 4.3 ª©ªº UNIX ¨t²Î¬O³Ì¦­´£¨Ñ¦¹¤@¥\¯àªº UNIX ¨t²Î¡ABSD ¤¤ªº script «ü¥O´N¬O§Q¥ÎµêÀÀ²×ºÝ¾÷ªº¥\¥Î©Ò¼¶¼gªº¡C

¨å«¬¨Ï¥ÎµêÀÀ²×ºÝ¾÷¬O¥ý¶}©l¥D­nµêÀÀ²×ºÝ¾÷¡AµM«á fork ¤@¥÷«þ¨©¡A¥Ñ¤l³B²zµ{§Ç¶}©l±qÄݵêÀÀ²×ºÝ¾÷¡C

Pseudo trminal.gif (4693 bytes)

¡i°Ñ¦Ò¡jfile descriptor, line descipline, device driver¡C

¡iªþµù¡jpty ¬° pseudo terminal ªºÁY¼g¡C

PSN (Packet Switch Node)

¡iĶ¦W¡j¤À«Ê¥æ´«¸`ÂI¡C

¡i»¡©ú¡j³o¬O¤@ºØµwÅé³]³Æªº¦WºÙ¡A¥D­n¬O¦b¤À«Ê¥æ´«ºô¸ôªº«Øºc¤W³Q¨Ï¥Î¡C¨C­Ó¸`ÂI·|§Q¥Î¤@ºØ³q°T¨ó©w¡]protocol¡^¨Ó´£¨ÑºB¥i¾aªº¡B¥i§@¬y¶q±±¨îªº¡B¤À«Ê¥æ´«ªº¥\¯à¡C

¡i°Ñ¦Ò¡jpacket, protocol¡C

punctual input mode

¡iĶ¦W¡jµL

¡i»¡©ú¡j¦P¡u­ì©l¿é¤J¼Ò¦¡¡v¤@Ãã¡C

¡i°Ñ¦Ò¡jraw input mode¡C