diff --git a/README.md b/README.md index 90f0685b..dadf9ed1 100644 --- a/README.md +++ b/README.md @@ -98,7 +98,7 @@ Fileã€�InputStream å’Œ OutputStreamã€�Reader å’Œ Writerã€�Serializableã€�Socket 如果å�‘现笔误,å�¯ä»¥ç›´æŽ¥ç¼–辑修改,楼主会å�Šæ—¶å¤„ç�†ã€‚ -如果您觉得哪部分内容写的好或者ä¸�好,都希望您能在 Issue 中进行å��馈,您的å��馈是楼主改进的方å�‘。 +如果您觉得哪部分内容写的好或者ä¸�好,都希望您能在 Issues 中进行å��馈,您的å��馈是楼主改进的方å�‘。 想è¦�支æŒ�楼主的è¯�,在 Github 上点个 Star å�³å�¯ã€‚ diff --git a/notes/计算机æ“�作系统.md b/notes/计算机æ“�作系统.md index 006d4bbb..9a3dddf0 100644 --- a/notes/计算机æ“�作系统.md +++ b/notes/计算机æ“�作系统.md @@ -21,9 +21,9 @@ * [½ø³Ì״̬µÄÇл»](#½ø³Ì״̬µÄÇл») * [µ÷¶ÈËã·¨](#µ÷¶ÈËã·¨) * [1. Åú´¦ÀíϵͳÖеĵ÷¶È](#1-Åú´¦ÀíϵͳÖеĵ÷¶È) - * [1.1 ÏÈÀ´ÏÈ·þÎñ£¨FCFS£©](#11-ÏÈÀ´ÏÈ·þÎñfcfs) - * [1.2 ¶Ì×÷ÒµÓÅÏÈ£¨SJF£©](#12-¶Ì×÷ÒµÓÅÏÈsjf) - * [1.3 ×î¶ÌÊ£Óàʱ¼äÓÅÏÈ£¨SRTN£©](#13-×î¶ÌÊ£Óàʱ¼äÓÅÏÈsrtn) + * [1.1 ÏÈÀ´ÏÈ·þÎñ](#11-ÏÈÀ´ÏÈ·þÎñ) + * [1.2 ¶Ì×÷ÒµÓÅÏÈ](#12-¶Ì×÷ÒµÓÅÏÈ) + * [1.3 ×î¶ÌÊ£Óàʱ¼äÓÅÏÈ](#13-×î¶ÌÊ£Óàʱ¼äÓÅÏÈ) * [2. ½»»¥Ê½ÏµÍ³Öеĵ÷¶È](#2-½»»¥Ê½ÏµÍ³Öеĵ÷¶È) * [2.1 ÓÅÏÈȨÓÅÏÈ](#21-ÓÅÏÈȨÓÅÏÈ) * [2.2 ʱ¼äƬÂÖת](#22-ʱ¼äƬÂÖת) @@ -96,7 +96,7 @@ ### 2. ¹²Ïí -¹²ÏíÊÇָϵͳÖеÄ×ÊÔ´¿ÉÒÔ¹©¶à¸ö²¢·¢µÄ½ø³Ì¹²Í¬Ê¹Óᣠ+¹²ÏíÊÇָϵͳÖеÄ×ÊÔ´¿ÉÒÔ¹©¶à¸ö²¢·¢½ø³Ì¹²Í¬Ê¹ÓᣠÓÐÁ½ÖÖ¹²Ïí·½Ê½£º»¥³â¹²ÏíºÍͬʱ¹²Ïí¡£ @@ -104,7 +104,7 @@ ### 3. ÐéÄâ -ÐéÄâ¼¼Êõ°ÑÒ»¸öÎïÀíʵÌåת»»Îª¶à¸öÂß¼­ÊµÌå¡£Ö÷ÒªÓÐÁ½ÖÖÐéÄâ¼¼Êõ£ºÊ±·Ö¸´Óü¼ÊõºÍ¿Õ·Ö¸´Óü¼Êõ£¬ÀýÈç¶à¸ö½ø³ÌÄÜÔÚͬһ¸ö´¦ÀíÆ÷Éϲ¢·¢Ö´ÐÐʹÓÃÁËʱ·Ö¸´Óü¼Êõ£¬ÈÃÿ¸ö½ø³ÌÂÖÁ÷Õ¼Óд¦ÀíÆ÷£¬Ã¿´ÎÖ»Ö´ÐÐһС¸öʱ¼äƬ²¢¿ìËÙÇл»£¬ÕâÑù¾ÍºÃÏñÓжà¸ö´¦ÀíÆ÷½øÐд¦Àí¡£ +ÐéÄâ¼¼Êõ°ÑÒ»¸öÎïÀíʵÌåת»»Îª¶à¸öÂß¼­ÊµÌå¡£Ö÷ÒªÓÐÁ½ÖÖÐéÄâ¼¼Êõ£ºÊ±·Ö¸´Óü¼ÊõºÍ¿Õ·Ö¸´Óü¼Êõ£¬ÀýÈç¶à¸ö½ø³ÌÄÜÔÚͬһ¸ö´¦ÀíÆ÷Éϲ¢·¢Ö´ÐÐʹÓÃÁËʱ·Ö¸´Óü¼Êõ£¬ÈÃÿ¸ö½ø³ÌÂÖÁ÷Õ¼Óд¦ÀíÆ÷£¬Ã¿´ÎÖ»Ö´ÐÐһС¸öʱ¼äƬ²¢¿ìËÙÇл»¡£ ### 4. Òì²½ @@ -152,19 +152,19 @@ ### 2. Ïß³Ì -Ò»¸öÏß³ÌÖпÉÒÔÓжà¸öỊ̈߳¬ÊǶÀÁ¢µ÷¶ÈµÄ»ù±¾µ¥Î»¡£Í¬Ò»¸ö½ø³ÌÖеĶà¸öÏß³ÌÖ®¼ä¿ÉÒÔ²¢·¢Ö´ÐУ¬ËüÃǹ²Ïí½ø³Ì×ÊÔ´¡£ +Ò»¸ö½ø³ÌÖпÉÒÔÓжà¸öỊ̈߳¬Ïß³ÌÊǶÀÁ¢µ÷¶ÈµÄ»ù±¾µ¥Î»¡£Í¬Ò»¸ö½ø³ÌÖеĶà¸öÏß³ÌÖ®¼ä¿ÉÒÔ²¢·¢Ö´ÐУ¬ËüÃǹ²Ïí½ø³Ì×ÊÔ´¡£ ### 3. Çø±ð -¢Ù ÓµÓÐ×ÊÔ´£º½ø³ÌÊÇ×ÊÔ´·ÖÅäµÄ»ù±¾µ¥Î»£¬µ«ÊÇÏ̲߳»ÓµÓÐ×ÊÔ´£¬Ï߳̿ÉÒÔ·ÃÎÊÂÊÊô½ø³ÌµÄ×ÊÔ´¡£ +- **ÓµÓÐ×ÊÔ´**£º½ø³ÌÊÇ×ÊÔ´·ÖÅäµÄ»ù±¾µ¥Î»£¬µ«ÊÇÏ̲߳»ÓµÓÐ×ÊÔ´£¬Ï߳̿ÉÒÔ·ÃÎÊÂÊÊô½ø³ÌµÄ×ÊÔ´¡£ -¢Ú µ÷¶È£ºÏß³ÌÊǶÀÁ¢µ÷¶ÈµÄ»ù±¾µ¥Î»£¬ÔÚͬһ½ø³ÌÖУ¬Ï̵߳ÄÇл»²»»áÒýÆð½ø³ÌÇл»£¬´ÓÒ»¸ö½ø³ÌÄÚµÄÏß³ÌÇл»µ½ÁíÒ»¸ö½ø³ÌÖеÄÏß³Ìʱ£¬»áÒýÆð½ø³ÌÇл»¡£ +- **µ÷¶È**£ºÏß³ÌÊǶÀÁ¢µ÷¶ÈµÄ»ù±¾µ¥Î»£¬ÔÚͬһ½ø³ÌÖУ¬Ï̵߳ÄÇл»²»»áÒýÆð½ø³ÌÇл»£¬´ÓÒ»¸ö½ø³ÌÄÚµÄÏß³ÌÇл»µ½ÁíÒ»¸ö½ø³ÌÖеÄÏß³Ìʱ£¬»áÒýÆð½ø³ÌÇл»¡£ -¢Û ϵͳ¿ªÏú£ºÓÉÓÚ´´½¨»ò³·Ïú½ø³Ìʱ£¬ÏµÍ³¶¼ÒªÎªÖ®·ÖÅä»ò»ØÊÕ×ÊÔ´£¬ÈçÄÚ´æ¿Õ¼ä¡¢I/O É豸µÈ£¬Òò´Ë²Ù×÷ϵͳËù¸¶³öµÄ¿ªÏúÔ¶´óÓÚ´´½¨»ò³·ÏúÏß³ÌʱµÄ¿ªÏú¡£ÀàËÆµØ£¬ÔÚ½øÐнø³ÌÇл»Ê±£¬Éæ¼°µ±Ç°Ö´Ðнø³Ì CPU »·¾³µÄ±£´æ¼°Ðµ÷¶È½ø³Ì CPU »·¾³µÄÉèÖ᣶øÏß³ÌÇл»Ê±Ö»Ðè±£´æºÍÉèÖÃÉÙÁ¿¼Ä´æÆ÷ÄÚÈÝ£¬¿ªÏúºÜС¡£´ËÍ⣬ÓÉÓÚͬһ½ø³ÌÄڵĶà¸öÏ̹߳²Ïí½ø³ÌµÄµØÖ·¿Õ¼ä£¬Òò´Ë£¬ÕâЩÏß³ÌÖ®¼äµÄͬ²½ÓëͨÐŷdz£ÈÝÒ×ʵÏÖ£¬ÉõÖÁÎÞÐè²Ù×÷ϵͳµÄ¸ÉÔ¤¡£ +- **ϵͳ¿ªÏú**£ºÓÉÓÚ´´½¨»ò³·Ïú½ø³Ìʱ£¬ÏµÍ³¶¼ÒªÎªÖ®·ÖÅä»ò»ØÊÕ×ÊÔ´£¬ÈçÄÚ´æ¿Õ¼ä¡¢I/O É豸µÈ£¬Òò´Ë²Ù×÷ϵͳËù¸¶³öµÄ¿ªÏúÔ¶´óÓÚ´´½¨»ò³·ÏúÏß³ÌʱµÄ¿ªÏú¡£ÀàËÆµØ£¬ÔÚ½øÐнø³ÌÇл»Ê±£¬Éæ¼°µ±Ç°Ö´Ðнø³Ì CPU »·¾³µÄ±£´æ¼°Ðµ÷¶È½ø³Ì CPU »·¾³µÄÉèÖ᣶øÏß³ÌÇл»Ê±Ö»Ðè±£´æºÍÉèÖÃÉÙÁ¿¼Ä´æÆ÷ÄÚÈÝ£¬¿ªÏúºÜС¡£ -¢Ü ͨÐÅ·½Ã棺½ø³Ì¼äͨÐÅ (IPC) ÐèÒª½ø³Ìͬ²½ºÍ»¥³âÊֶεĸ¨Öú£¬ÒÔ±£Ö¤Êý¾ÝµÄÒ»ÖÂÐÔ£¬¶øÏ̼߳ä¿ÉÒÔͨ¹ýÖ±½Ó¶Á/д½ø³ÌÊý¾Ý¶Î£¨ÈçÈ«¾Ö±äÁ¿£©À´½øÐÐͨÐÅ¡£ +- **ͨÐÅ·½Ãæ**£º½ø³Ì¼äͨÐÅ (IPC) ÐèÒª½ø³Ìͬ²½ºÍ»¥³âÊֶεĸ¨Öú£¬ÒÔ±£Ö¤Êý¾ÝµÄÒ»ÖÂÐÔ£¬¶øÏ̼߳ä¿ÉÒÔͨ¹ýÖ±½Ó¶Á/дͬһ½ø³ÌÖеÄÊý¾Ý¶Î£¨ÈçÈ«¾Ö±äÁ¿£©À´½øÐÐͨÐÅ¡£ -¾ÙÀý£ºQQ ºÍ ä¯ÀÀÆ÷ÊÇÁ½¸ö½ø³Ì£¬ä¯ÀÀÆ÷½ø³ÌÀïÃæÓкܶàỊ̈߳¬ÀýÈç http ÇëÇóÏ̡߳¢Ê¼þÏìÓ¦Ï̡߳¢äÖȾÏ̵߳ȵȣ¬Ï̵߳IJ¢·¢Ö´ÐÐʹµÃÔÚä¯ÀÀÆ÷Öеã»÷Ò»¸öÐÂÁ´½Ó´Ó¶ø·¢Æð http ÇëÇóʱ£¬ä¯ÀÀÆ÷»¹¿ÉÒÔÏìÓ¦Óû§µÄÆäËüʼþ¡£ +¾ÙÀý£ºQQ ºÍä¯ÀÀÆ÷ÊÇÁ½¸ö½ø³Ì£¬ä¯ÀÀÆ÷½ø³ÌÀïÃæÓкܶàỊ̈߳¬ÀýÈç HTTP ÇëÇóÏ̡߳¢Ê¼þÏìÓ¦Ï̡߳¢äÖȾÏ̵߳ȵȣ¬Ï̵߳IJ¢·¢Ö´ÐÐʹµÃÔÚä¯ÀÀÆ÷Öеã»÷Ò»¸öÐÂÁ´½Ó´Ó¶ø·¢Æð HTTP ÇëÇóʱ£¬ä¯ÀÀÆ÷»¹¿ÉÒÔÏìÓ¦Óû§µÄÆäËüʼþ¡£ ## ½ø³Ì״̬µÄÇл» @@ -180,25 +180,25 @@ ### 1. Åú´¦ÀíϵͳÖеĵ÷¶È -#### 1.1 ÏÈÀ´ÏÈ·þÎñ£¨FCFS£© +#### 1.1 ÏÈÀ´ÏÈ·þÎñ -first-come first-serverd¡£ +first-come first-serverd£¨FCFS£©¡£ µ÷¶È×îÏȽøÈë¾ÍÐ÷¶ÓÁеÄ×÷Òµ¡£ ÓÐÀûÓÚ³¤×÷Òµ£¬µ«²»ÀûÓÚ¶Ì×÷Òµ£¬ÒòΪ¶Ì×÷Òµ±ØÐëÒ»Ö±µÈ´ýÇ°ÃæµÄ³¤×÷ÒµÖ´ÐÐÍê±Ï²ÅÄÜÖ´ÐУ¬¶ø³¤×÷ÒµÓÖÐèÒªÖ´Ðкܳ¤Ê±¼ä£¬Ôì³ÉÁ˶Ì×÷ÒµµÈ´ýʱ¼ä¹ý³¤¡£ -#### 1.2 ¶Ì×÷ÒµÓÅÏÈ£¨SJF£© +#### 1.2 ¶Ì×÷ÒµÓÅÏÈ -shortest job first¡£ +shortest job first£¨SJF£©¡£ µ÷¶È¹À¼ÆÔËÐÐʱ¼ä×î¶ÌµÄ×÷Òµ¡£ ³¤×÷ÒµÓпÉÄÜ»á¶öËÀ£¬´¦ÓÚÒ»Ö±µÈ´ý¶Ì×÷ÒµÖ´ÐÐÍê±ÏµÄ״̬¡£Èç¹ûÒ»Ö±ÓжÌ×÷Òµµ½À´£¬ÄÇô³¤×÷ÒµÓÀÔ¶µÃ²»µ½µ÷¶È¡£ -#### 1.3 ×î¶ÌÊ£Óàʱ¼äÓÅÏÈ£¨SRTN£© +#### 1.3 ×î¶ÌÊ£Óàʱ¼äÓÅÏÈ -shortest remaining time next¡£ +shortest remaining time next£¨SRTN£©¡£ ### 2. ½»»¥Ê½ÏµÍ³Öеĵ÷¶È @@ -214,19 +214,19 @@ shortest remaining time next ½«ËùÓоÍÐ÷½ø³Ì°´ FCFS µÄÔ­ÔòÅųÉÒ»¸ö¶ÓÁУ¬Ã¿´Îµ÷¶Èʱ£¬°Ñ CPU ·ÖÅ䏸¶ÓÊ×½ø³Ì£¬¸Ã½ø³Ì¿ÉÒÔÖ´ÐÐÒ»¸öʱ¼äƬ¡£µ±Ê±¼äƬÓÃÍêʱ£¬ÓɼÆÊ±Æ÷·¢³öʱÖÓÖжϣ¬µ÷¶È³ÌÐò±ãÍ£Ö¹¸Ã½ø³ÌµÄÖ´ÐУ¬²¢½«ËüËÍÍù¾ÍÐ÷¶ÓÁеÄĩβ£¬Í¬Ê±¼ÌÐø°Ñ CPU ·ÖÅ䏸¶ÓÊ׵Ľø³Ì¡£ -ʱ¼äƬÂÖתËã·¨µÄЧÂʺÍʱ¼äƬÓкܴó¹ØÏµ¡£ÒòΪÿ´Î½ø³ÌÇл»¶¼Òª±£´æ½ø³ÌµÄÐÅÏ¢²¢ÇÒÔØÈëнø³ÌµÄÐÅÏ¢£¬Èç¹ûʱ¼äƬ̫¶Ì£¬½ø³ÌÇл»Ì«Æµ·±£¬ÔÚ½ø³ÌÇл»ÉϾͻỨ¹ý¶àʱ¼ä¡£ +ʱ¼äƬÂÖתËã·¨µÄЧÂʺÍʱ¼äƬµÄ´óСÓкܴó¹ØÏµ¡£ÒòΪÿ´Î½ø³ÌÇл»¶¼Òª±£´æ½ø³ÌµÄÐÅÏ¢²¢ÇÒÔØÈëнø³ÌµÄÐÅÏ¢£¬Èç¹ûʱ¼äƬ̫С£¬½ø³ÌÇл»Ì«Æµ·±£¬ÔÚ½ø³ÌÇл»ÉϾͻỨ¹ý¶àʱ¼ä¡£ #### 2.3 ¶à¼¶·´À¡¶ÓÁÐ ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/042cf928-3c8e-4815-ae9c-f2780202c68f.png) -¢Ù ÉèÖöà¸ö¾ÍÐ÷¶ÓÁУ¬²¢Îª¸÷¸ö¶ÓÁи³Ó費ͬµÄÓÅÏȼ¶¡£µÚÒ»¸ö¶ÓÁеÄÓÅÏȼ¶×î¸ß£¬µÚ¶þ¸ö¶ÓÁдÎÖ®£¬ÆäÓà¸÷¶ÓÁеÄÓÅÏÈȨÖð¸ö½µµÍ¡£¸ÃËã·¨¸³Óè¸÷¸ö¶ÓÁÐÖнø³ÌÖ´ÐÐʱ¼äƬµÄ´óСҲ¸÷²»Ïàͬ£¬ÔÚÓÅÏÈȨԽ¸ßµÄ¶ÓÁÐÖУ¬ÎªÃ¿¸ö½ø³ÌËù¹æ¶¨µÄÖ´ÐÐʱ¼äƬ¾ÍԽС¡£ +1. ÉèÖöà¸ö¾ÍÐ÷¶ÓÁУ¬²¢Îª¸÷¸ö¶ÓÁи³Ó費ͬµÄÓÅÏȼ¶¡£µÚÒ»¸ö¶ÓÁеÄÓÅÏȼ¶×î¸ß£¬µÚ¶þ¸ö¶ÓÁдÎÖ®£¬ÆäÓà¸÷¶ÓÁеÄÓÅÏÈȨÖð¸ö½µµÍ¡£¸ÃËã·¨¸³Óè¸÷¸ö¶ÓÁÐÖнø³ÌÖ´ÐÐʱ¼äƬµÄ´óСҲ¸÷²»Ïàͬ£¬ÔÚÓÅÏÈȨԽ¸ßµÄ¶ÓÁÐÖУ¬ÎªÃ¿¸ö½ø³ÌËù¹æ¶¨µÄÖ´ÐÐʱ¼äƬ¾ÍԽС¡£ -¢Ú µ±Ò»¸öнø³Ì½øÈëÄÚ´æºó£¬Ê×ÏȽ«Ëü·ÅÈëµÚÒ»¶ÓÁеÄĩ⣬°´ FCFS Ô­ÔòÅŶӵȴýµ÷¶È¡£µ±ÂÖµ½¸Ã½ø³ÌÖ´ÐÐʱ£¬ÈçËüÄÜÔÚ¸Ãʱ¼äƬÄÚÍê³É£¬±ã¿É×¼±¸³·Àëϵͳ£»Èç¹ûËüÔÚÒ»¸öʱ¼äƬ½áÊøÊ±ÉÐδÍê³É£¬µ÷¶È³ÌÐò±ã½«¸Ã½ø³ÌתÈëÏÂÒ»¸ö¶ÓÁеĶÓβ¡£ +2. µ±Ò»¸öнø³Ì½øÈëÄÚ´æºó£¬Ê×ÏȽ«Ëü·ÅÈëµÚÒ»¶ÓÁеÄĩ⣬°´ FCFS Ô­ÔòÅŶӵȴýµ÷¶È¡£µ±ÂÖµ½¸Ã½ø³ÌÖ´ÐÐʱ£¬ÈçËüÄÜÔÚ¸Ãʱ¼äƬÄÚÍê³É£¬±ã¿É×¼±¸³·Àëϵͳ£»Èç¹ûËüÔÚÒ»¸öʱ¼äƬ½áÊøÊ±ÉÐδÍê³É£¬µ÷¶È³ÌÐò±ã½«¸Ã½ø³ÌתÈëÏÂÒ»¸ö¶ÓÁеĶÓβ¡£ -¢Û ½öµ±Ç° i -1 ¸ö¶ÓÁоù¿Õʱ£¬²Å»áµ÷¶ÈµÚ i ¶ÓÁÐÖеĽø³ÌÔËÐС£ +3. ½öµ±Ç° i -1 ¸ö¶ÓÁоù¿Õʱ£¬²Å»áµ÷¶ÈµÚ i ¸ö¶ÓÁÐÖеĽø³Ì¡£ -Óŵ㣺ʵʱÐԺã¬Ò²ÊʺÏÔËÐжÌ×÷ÒµºÍ³¤×÷Òµ¡£ +Óŵ㣺ʵʱÐԺã¬Í¬Ê±ÊʺÏÔËÐжÌ×÷ÒµºÍ³¤×÷Òµ¡£ #### 2.4 ¶Ì½ø³ÌÓÅÏÈ