{"pdfData":[[{"bbox":[88,97,187,116],"type":"title","angle":0,"index":0,"text":"# 操作系统概述","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":0,"id":"7b52ae32-7fcf-4302-a4cc-0cb637e94523","page_size":[595,841],"block_position":"0-0"},{"bbox":[88,158,171,177],"type":"title","angle":0,"index":1,"text":"# 计算机系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":0,"id":"f2823e2f-a735-4b51-9230-f460fd09f3b9","page_size":[595,841],"block_position":"0-1"},{"bbox":[86,214,269,227],"type":"text","angle":0,"index":2,"text":"完整的计算机由硬件和软件两部分组成","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"074685d6-b25a-45be-97c9-f3dd6ca06a3c","page_size":[595,841],"block_position":"0-2"},{"bbox":[86,229,477,241],"type":"text","angle":0,"index":3,"text":"计算机硬件是指计算机系统中由电子、机械、光电组件组成的各种计算机部件和设备","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"64c5185a-3e3b-45b6-bbad-52ca84922874","page_size":[595,841],"block_position":"0-3"},{"bbox":[86,245,357,257],"type":"text","angle":0,"index":4,"text":"计算机软件是指计算机系统中的程序、数据和有关的文档。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"e3f92930-4399-4709-813d-5dcf90c1185b","page_size":[595,841],"block_position":"0-4"},{"bbox":[86,261,398,273],"type":"text","angle":0,"index":5,"text":"根据软件的作业可以将其分为系统软件、支撑软件和应用软件三类。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"bbcae3c3-6628-471f-9cb5-4571b7bc2839","page_size":[595,841],"block_position":"0-5"},{"bbox":[86,276,503,288],"type":"text","angle":0,"index":6,"text":"操作系统：操作系统是一组控制和管理计算机硬件和软件资源，合理地对各类作业进行调","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"4771b9f8-2cf4-4b8f-9c63-dc0e791a0efe","page_size":[595,841],"block_position":"0-6"},{"bbox":[86,292,289,304],"type":"text","angle":0,"index":7,"text":"度、以及方便用户使用计算机的程序的集合","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"90e26381-0001-4e40-9262-71c75ed3be86","page_size":[595,841],"block_position":"0-7"},{"bbox":[86,307,205,319],"type":"text","angle":0,"index":8,"text":"任务：管理计算机的资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"a948a712-8d11-422b-901c-bba51deb31b8","page_size":[595,841],"block_position":"0-8"},{"bbox":[86,323,167,335],"type":"text","angle":0,"index":9,"text":"操作系统的目标：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"e0aa4a8f-385c-49d9-ac23-a594bfc37aec","page_size":[595,841],"block_position":"0-9"},{"bbox":[87,339,121,351],"type":"text","angle":0,"index":10,"text":"方便性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"adeb9966-c937-46e6-b3cf-31599caca479","page_size":[595,841],"block_position":"0-10"},{"bbox":[87,354,121,366],"type":"text","angle":0,"index":11,"text":"有效性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"533c3980-d20d-4208-95e9-267abc20df90","page_size":[595,841],"block_position":"0-11"},{"bbox":[87,370,146,382],"type":"title","angle":0,"index":12,"text":"# 3. OS 的作用","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":0,"id":"ac1f688b-7990-4736-9ece-2ab160ded59e","page_size":[595,841],"block_position":"0-12"},{"bbox":[87,386,261,397],"type":"text","angle":0,"index":13,"text":"‐ OS 是用户与计算机硬件之间的接口；","id":"aadf3f3f-2ae8-4c50-bc39-4945fe718191","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"page_size":[595,841],"block_position":"0-13"},{"bbox":[87,401,240,413],"type":"text","angle":0,"index":14,"text":"‐ OS 是计算机系统资源的管理者；","id":"3932e7d6-ec8d-4f13-8f93-d36e567f301f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"page_size":[595,841],"block_position":"0-14"},{"bbox":[87,417,365,428],"type":"text","angle":0,"index":15,"text":"‐ OS 是扩充裸机功能的软件，它实现了对计算机资源的抽象；","id":"f7a26749-76c1-4a05-853c-95d1a49be2ee","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"page_size":[595,841],"block_position":"0-15"},{"bbox":[87,433,256,444],"type":"text","angle":0,"index":16,"text":"‐ OS 是计算机系统工作流程的组织者","id":"f5fdac05-7174-4d78-884b-2bd20a5b35cd","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"page_size":[595,841],"block_position":"0-16"},{"bbox":[88,468,160,484],"type":"title","angle":0,"index":18,"text":"# 计算机硬件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":0,"id":"fe2ae299-4ccf-4fe6-afb4-fa0d2dda628f","page_size":[595,841],"block_position":"0-17"},{"bbox":[87,518,262,531],"type":"text","angle":0,"index":19,"text":"中央处理器、存储器、各种输入设备。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"bde839d8-1aba-49bf-8de7-2de80dbf0d9f","page_size":[595,841],"block_position":"0-18"},{"bbox":[88,555,160,571],"type":"title","angle":0,"index":20,"text":"# 计算机软件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":0,"id":"064f8310-0199-44a9-9ce5-89882809d92b","page_size":[595,841],"block_position":"0-19"},{"bbox":[87,605,262,618],"type":"text","angle":0,"index":21,"text":"系统软件、应用软件和支撑软件三类。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"86ad4e2b-4cb0-4bc5-b479-ac49aa98e6eb","page_size":[595,841],"block_position":"0-20"},{"bbox":[86,621,489,633],"type":"text","angle":0,"index":22,"text":"系统软件支持和管理硬件你，它创立的是一个平台，如编译程序、装配程序、操作系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"7b0794b0-deba-4434-9d42-be0cec36b781","page_size":[595,841],"block_position":"0-21"},{"bbox":[87,636,279,649],"type":"text","angle":0,"index":23,"text":"应用软件是某个特定应用领域专用的软件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"7f95d75c-97a7-4e3b-8e57-9b28a3e573e5","page_size":[595,841],"block_position":"0-22"},{"bbox":[87,652,321,664],"type":"text","angle":0,"index":24,"text":"支撑软件是支撑其他软件的编址和维护，如中间件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"ed30d183-b259-4119-9cf6-e8e0f8f4bad0","page_size":[595,841],"block_position":"0-23"},{"bbox":[86,667,503,679],"type":"text","angle":0,"index":25,"text":"计算机系统自上而下可分为四部分：硬件、操作系统、应用程序和用户。操作系统管理计","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"f2952b33-f904-4d6f-8134-e5a6cc22c520","page_size":[595,841],"block_position":"0-24"},{"bbox":[87,683,237,696],"type":"text","angle":0,"index":26,"text":"算机硬件，为应用程序提供基础","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"7b7d72e0-b91c-47ca-ab24-4b9fbb087f5a","page_size":[595,841],"block_position":"0-25"}],[{"bbox":[88,84,250,103],"type":"title","angle":0,"index":0,"text":"# 操作系统的发展与分类","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":1,"id":"1780907a-5a03-4ca9-b2ef-9858be75a616","page_size":[595,841],"block_position":"1-0"},{"bbox":[88,147,147,163],"type":"title","angle":0,"index":1,"text":"# 手工操作","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":1,"id":"43341105-145b-4a72-95b1-90645e8abb6b","page_size":[595,841],"block_position":"1-1"},{"bbox":[88,203,160,220],"type":"title","angle":0,"index":2,"text":"# 单道批处理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":1,"id":"0f48c6bd-75a4-43ee-a8b1-f64875c08823","page_size":[595,841],"block_position":"1-2"},{"bbox":[88,260,160,277],"type":"title","angle":0,"index":3,"text":"# 多道批处理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":1,"id":"0a4356ef-1e39-4509-ad6d-b2cfd8dd0d33","page_size":[595,841],"block_position":"1-3"},{"bbox":[87,312,129,323],"type":"text","angle":0,"index":4,"text":"1、 多道","id":"a058c48f-f6c0-43db-ab73-47ab15d4ec68","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"page_size":[595,841],"block_position":"1-4"},{"bbox":[87,327,160,339],"type":"text","angle":0,"index":5,"text":"2、宏观上并行","id":"8014ac78-dce4-4c10-a6ea-a4ec1708467e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"page_size":[595,841],"block_position":"1-5"},{"bbox":[87,343,160,354],"type":"text","angle":0,"index":6,"text":"3、微观上串行","id":"93c11a63-3d87-4f1d-9d38-b5cfbe7cc02a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"page_size":[595,841],"block_position":"1-6"},{"bbox":[86,359,482,386],"type":"text","angle":0,"index":8,"text":"$\\blacktriangle$ 批处理首先考虑资源利用率和系统吞吐量，分时系统首先考虑交互能力和响应时间，实时系统首先考虑实时性和可靠性。","id":"33cfaa0d-ae0a-4ce6-b0e2-c4d23155bcfd","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"page_size":[595,841],"block_position":"1-7"},{"bbox":[87,390,332,401],"type":"text","angle":0,"index":9,"text":"$\\blacktriangle$ 批处理系统的特点：资源利用率高，系统吞吐量大","id":"4739f929-4127-4ccb-a110-ec6f7cb89ae2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"page_size":[595,841],"block_position":"1-8"},{"bbox":[87,405,247,417],"type":"text","angle":0,"index":11,"text":"无交互能力，作业平均周转时间长","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"597d50c6-9960-41ef-bec5-dd3f268315ce","page_size":[595,841],"block_position":"1-9"},{"bbox":[86,421,480,449],"type":"text","angle":0,"index":12,"text":"$\\blacktriangle$ 多道程序设计技术：多道程序同时装入内存，允许他们并发运行。优点：提高 CPU、存储器、设备的资源利用率，增加系统吞吐量。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"014bef73-ab63-4b56-b527-392b4e45bce2","page_size":[595,841],"block_position":"1-10"},{"bbox":[87,472,147,488],"type":"title","angle":0,"index":13,"text":"# 分时操作","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":1,"id":"e0f4f031-0524-43ad-8e19-39e8b7176800","page_size":[595,841],"block_position":"1-11"},{"bbox":[86,523,314,535],"type":"text","angle":0,"index":14,"text":"按照时间片轮流将处理器分配给各联机作业使用。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"e4e5a13c-7c02-4cb1-aa3e-d50107d5e567","page_size":[595,841],"block_position":"1-12"},{"bbox":[87,539,140,550],"type":"text","angle":0,"index":15,"text":"1、同时性","id":"cfe2eae7-1cc3-4846-8b7d-e43b33be372c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"page_size":[595,841],"block_position":"1-13"},{"bbox":[87,555,139,566],"type":"text","angle":0,"index":16,"text":"2、 交互性","id":"b4a133af-99a1-489b-9522-a9cabf1afd41","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"page_size":[595,841],"block_position":"1-14"},{"bbox":[87,571,139,581],"type":"text","angle":0,"index":17,"text":"3、独立性","id":"83196f60-d57f-4580-97ff-2153cbeb83fd","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"page_size":[595,841],"block_position":"1-15"},{"bbox":[87,585,139,597],"type":"text","angle":0,"index":18,"text":"4、及时性","id":"886afe47-200a-4d20-8a23-6c7fcc50c2e5","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"page_size":[595,841],"block_position":"1-16"},{"bbox":[86,601,236,613],"type":"text","angle":0,"index":20,"text":"分时系统的关键问题：人机交互","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"f97f014d-4ecf-4323-9a9f-e73950a7bb98","page_size":[595,841],"block_position":"1-17"},{"bbox":[86,617,320,629],"type":"text","angle":0,"index":21,"text":"作业提交直接进入内存，引入时间片分时共享 CPU","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"846e4228-1efd-4572-bf31-3d68222b8dae","page_size":[595,841],"block_position":"1-18"},{"bbox":[87,632,249,645],"type":"text","angle":0,"index":22,"text":"响应时间 $\\approx$ 进程数目 $\\times$ 时间片大小","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"6e785ec7-42af-448e-a2d1-1c4b41a99f48","page_size":[595,841],"block_position":"1-19"},{"bbox":[87,648,247,660],"type":"text","angle":0,"index":23,"text":"$\\blacktriangle$ 分时系统和实时系统的特征比较","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"dad28d7d-49e2-4e58-b827-5c00007591fe","page_size":[595,841],"block_position":"1-20"},{"bbox":[87,664,249,676],"type":"text","angle":0,"index":24,"text":"交互能力： 分时系统强于实时系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"964f6a7e-39cd-479a-989e-9b7798bcd1f8","page_size":[595,841],"block_position":"1-21"},{"bbox":[87,679,239,691],"type":"text","angle":0,"index":25,"text":"实时性： 实时系统优于分时系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"d497b852-d22a-485f-ac85-0f352219e17d","page_size":[595,841],"block_position":"1-22"},{"bbox":[87,694,239,707],"type":"text","angle":0,"index":26,"text":"可靠性： 实时系统优于分时系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"091f1cd4-1eb1-46a9-80b8-2c7f678681a5","page_size":[595,841],"block_position":"1-23"}],[{"bbox":[88,85,175,101],"type":"title","angle":0,"index":0,"text":"# 实时操作系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":2,"id":"91d41a8c-8e18-4707-b348-44f51267bf7b","page_size":[595,841],"block_position":"2-0"},{"bbox":[87,136,280,148],"type":"text","angle":0,"index":1,"text":"必须在决定的世家安内完成该事件的处理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"db4c6d38-dc5f-4228-8653-7ac7ca03b663","page_size":[595,841],"block_position":"2-1"},{"bbox":[87,172,175,188],"type":"title","angle":0,"index":2,"text":"# 微机操作系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":2,"id":"82217636-dbd6-400a-bd05-831cf7729d4c","page_size":[595,841],"block_position":"2-2"},{"bbox":[88,229,175,245],"type":"title","angle":0,"index":3,"text":"# 网络操作系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":2,"id":"dd6ed571-45ea-4e9d-b20a-9058923865b3","page_size":[595,841],"block_position":"2-3"},{"bbox":[88,285,189,302],"type":"title","angle":0,"index":4,"text":"# 分布式操作系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":2,"id":"829c0348-36f7-48b7-a258-bc292b7d4eb5","page_size":[595,841],"block_position":"2-4"},{"bbox":[88,343,189,359],"type":"title","angle":0,"index":5,"text":"# 嵌入式操作系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":2,"id":"7afc7e22-24e5-4293-a8ef-9c6dcaccc30e","page_size":[595,841],"block_position":"2-5"},{"bbox":[87,398,202,417],"type":"title","angle":0,"index":6,"text":"# 操作系统的特性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":2,"id":"8980038c-1e9f-4a8d-8274-804c4eec81a4","page_size":[595,841],"block_position":"2-6"},{"bbox":[88,461,132,477],"type":"title","angle":0,"index":7,"text":"# 并发性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":2,"id":"471c92a9-d616-47a5-be43-5bca884dec2b","page_size":[595,841],"block_position":"2-7"},{"bbox":[86,512,504,540],"type":"text","angle":0,"index":8,"text":"两个或多个事件在同一时间间隔内同时发生，宏观上由多个程序在同时执行，微观上在单处理机系统中这多个程序时交替运行的。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"0d2ab942-a647-4450-93a1-7e787409e8de","page_size":[595,841],"block_position":"2-8"},{"bbox":[87,543,199,556],"type":"text","angle":0,"index":9,"text":"并行性是同时刻发生的。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"0a54c343-a70e-40de-9a1e-cb69382dab53","page_size":[595,841],"block_position":"2-9"},{"bbox":[88,559,183,572],"type":"title","angle":0,"index":10,"text":"# ▲并发与并行的区别","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":2,"id":"e80ce078-295f-4781-955b-ca2fbf605569","page_size":[595,841],"block_position":"2-10"},{"bbox":[86,574,468,602],"type":"text","angle":0,"index":11,"text":"并发性：指两个或多个事件在同一时间间隔内发生。如单处理器中的两个进程（宏观上同时，微观上交替）（只并发，但不并行）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"82859182-aa7c-4489-8298-6d97820235c0","page_size":[595,841],"block_position":"2-11"},{"bbox":[86,606,470,634],"type":"text","angle":0,"index":12,"text":"并行性：两个或多个事件在同一时刻同时发生。如计算机中的 CPU 与 I/O 设备、I/O设备与 I/O 设备的工作","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"ff68fcb9-2bd6-4550-bd99-040e35c8f593","page_size":[595,841],"block_position":"2-12"},{"bbox":[87,637,470,650],"type":"text","angle":0,"index":13,"text":"一个程序的一次运行过程，每个进程设置一个PCB，存放下一条要执行的指令地址。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"20701485-65c0-40d3-a831-9b61a84c3096","page_size":[595,841],"block_position":"2-13"}],[{"bbox":[88,85,132,101],"type":"text","angle":0,"index":0,"text":"共享性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"d4d46c1d-140a-458e-8ece-bb6882d4b6c2","page_size":[595,841],"block_position":"3-0"},{"bbox":[88,142,132,158],"type":"text","angle":0,"index":1,"text":"虚拟性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"4f5522a1-335e-44c7-8fe3-8297addb3344","page_size":[595,841],"block_position":"3-1"},{"bbox":[88,199,132,215],"type":"text","angle":0,"index":2,"text":"异步性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"f7fdbb55-7483-4ea7-a1a4-af886c9993c5","page_size":[595,841],"block_position":"3-2"},{"bbox":[88,255,202,274],"type":"text","angle":0,"index":3,"text":"操作系统的功能","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"36da543d-b220-4d31-92a6-32bc7c23d210","page_size":[595,841],"block_position":"3-3"},{"bbox":[88,318,160,334],"type":"text","angle":0,"index":4,"text":"处理器管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"e6436346-318b-49c8-9c2d-beabefd64b8e","page_size":[595,841],"block_position":"3-4"},{"bbox":[88,369,258,382],"type":"text","angle":0,"index":5,"text":"即进程管理，对处理器进行分配调度","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"1bb79b73-f14e-4f17-ba6d-267081c8549b","page_size":[595,841],"block_position":"3-5"},{"bbox":[88,405,160,421],"type":"text","angle":0,"index":6,"text":"存储器管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"9b2e6d28-033e-49ef-83c9-6191d7128683","page_size":[595,841],"block_position":"3-6"},{"bbox":[88,461,146,477],"type":"text","angle":0,"index":7,"text":"设备管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"cfd832c7-f44b-48b8-b99d-cb58fed7adee","page_size":[595,841],"block_position":"3-7"},{"bbox":[88,518,146,534],"type":"text","angle":0,"index":8,"text":"文件管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"c80582a0-878f-4092-87b1-d3883a831daa","page_size":[595,841],"block_position":"3-8"},{"bbox":[88,605,146,621],"type":"text","angle":0,"index":9,"text":"作业管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"eb1a73cf-17fc-4e8f-99b8-7c6b0dbf449f","page_size":[595,841],"block_position":"3-9"},{"bbox":[88,662,173,678],"type":"text","angle":0,"index":10,"text":"提供用户接口","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"1d2b79ef-fa7f-4b5e-96b9-3bdd000a9bbe","page_size":[595,841],"block_position":"3-10"},{"bbox":[87,713,242,726],"type":"text","angle":0,"index":11,"text":"命令接口（联机命令、脱机命令）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"f52e5564-be4d-49cf-be17-ca6c3494d622","page_size":[595,841],"block_position":"3-11"},{"bbox":[86,728,505,757],"type":"text","angle":0,"index":12,"text":"应用程序接口（即系统调用，是 OS 提供的一组实现特殊功能的子程序，以供应用程序 取得 OS 的服务）。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"4ff834fb-02c5-4989-8bba-9bdb17873fd5","page_size":[595,841],"block_position":"3-12"}],[{"bbox":[88,79,132,91],"type":"header","angle":0,"index":-99999,"text":"图形接口","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":4,"is_discarded":true,"id":"b253f823-724d-4c16-93d2-4211e49757e4","page_size":[595,841],"block_position":"4-0"},{"bbox":[87,112,233,131],"type":"title","angle":0,"index":1,"text":"# 操作系统的内核结构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":4,"id":"3e1c857a-6c68-414a-bb51-2ddbb7b2ea8b","page_size":[595,841],"block_position":"4-1"},{"bbox":[93,164,530,403],"index":2,"angle":0,"type":"table_body","img_path":"/","id":"032f1381-2eec-4cb5-a613-dd76ee03db13","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td></td><td>特性、思想</td><td>优点</td><td>缺点</td></tr><tr><td rowspan=\"2\">分层结构</td><td rowspan=\"2\">内核分多层,每层可单向调用更低一层提供的接口</td><td>1.便于调试和验证,自底向上逐层调试验证</td><td>1.仅可调用相邻低层,难以合理定义各层的边界</td></tr><tr><td>2.易扩充和易维护,各层之间调用接口清晰固定</td><td>2.效率低,不可跨层调用,系统调用执行时间长</td></tr><tr><td rowspan=\"4\">模块化</td><td rowspan=\"4\">将内核划分为多个模块,各模块之间相互协作。内核=主模块+可加载内核模块主模块:只负责核心功能,如进程调度、内存管理可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核</td><td>1.模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发</td><td rowspan=\"2\">1.模块间的接口定义未必合理、实用</td></tr><tr><td rowspan=\"2\">2.支持动态加载新的内核模块(如:安装设备驱动程序、安装新的文件系统模块到内核),增强OS适应性</td></tr><tr><td rowspan=\"2\">2.模块间相互依赖,更难调试和验证</td></tr><tr><td>3.任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高</td></tr><tr><td rowspan=\"2\">宏内核(大内核)</td><td rowspan=\"2\">所有的系统功能都放在内核里(大内核结构的OS通常也采用了“模块化”的设计思想)</td><td rowspan=\"2\">1.性能高,内核内部各种功能都可以直接相互调用</td><td>1.内核庞大功能复杂,难以维护</td></tr><tr><td>2.大内核中某个功能模块出错,就可能导致整个系统崩溃</td></tr><tr><td rowspan=\"2\">微内核</td><td rowspan=\"2\">只把中断、原语、进程通信等最核心的功能放入内核。进程管理、文件管理、设备管理等功能以用户进程的形式运行在用户态</td><td>1.内核小功能少、易于维护,内核可靠性高</td><td>1.性能低,需要频繁的切换 用户态/核心态。用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递”来间接通信</td></tr><tr><td>2.内核外的某个功能模块出错不会导致整个系统崩溃</td><td>2.用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递”来间接通信</td></tr><tr><td rowspan=\"3\">外核(exokernel)</td><td rowspan=\"3\">内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全</td><td rowspan=\"2\">1.外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源</td><td>1.降低了系统的一致性</td></tr><tr><td rowspan=\"2\">2.使系统变得更复杂</td></tr><tr><td>2.减少了虚拟硬件资源的“映射层”,提升效率</td></tr></table>","page_idx":4,"page_size":[595,841],"block_position":"4-2"},{"bbox":[87,438,146,454],"type":"title","angle":0,"index":3,"text":"# 整体结构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":4,"id":"072bec82-c93c-442b-b503-d4e44b6231f4","page_size":[595,841],"block_position":"4-3"},{"bbox":[94,488,273,501],"type":"text","angle":0,"index":4,"text":"（实内核、单体结构模型、五结构模型）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"464816ee-d231-480a-bd8d-4d3935f2e83b","page_size":[595,841],"block_position":"4-4"},{"bbox":[87,524,146,540],"type":"title","angle":0,"index":5,"text":"# 模块结构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":4,"id":"edf16bbd-3fe8-4420-abab-6b04f279d6a5","page_size":[595,841],"block_position":"4-5"},{"bbox":[88,575,227,587],"type":"title","angle":0,"index":6,"text":"# 内核 $\\vdots = \\quad$ 主模块 $^ { \\cdot + }$ 可加载内核模块","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":4,"id":"56fd81fb-6b04-4dd9-b9db-c4574f04441a","page_size":[595,841],"block_position":"4-6"},{"bbox":[127,592,159,599],"type":"title","angle":0,"index":7,"text":"# (2）模块化","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":4,"id":"e508b2e3-046c-46d1-aa80-f112bccc1495","page_size":[595,841],"block_position":"4-7"},{"bbox":[110,599,367,631],"type":"text","angle":0,"index":8,"text":"模块化是将操作系统按功能划分为若干个具有一定独立性的模块。每个模块具有某方面的管细分为若于个具有一定功能的子模块，同样也规定好各子模块之间的接口。把这种设计方法称为模块-接口法，图1.3所示为由模块、子模块等组成的模块化操作系统结构。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"bca54867-c967-4a97-b5ce-4667828e10d1","page_size":[595,841],"block_position":"4-8"},{"bbox":[147,631,332,699],"index":9,"angle":0,"type":"image","img_path":"/e69c964be106eeacaf5865ef396bec7634a04679e60136cabe8d99355bdc30f0.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.31092436974789917,"page_idx":4,"id":"69eb101e-db2d-4e5d-aae4-e5a7e0a72154","page_size":[595,841],"block_position":"4-9"},{"bbox":[202,700,217,708],"index":10,"angle":0,"type":"image","img_path":"/9f25d2409b7b1cb76f651d2bb31b67e1203f824c22cfb68b6fa1a67b1fc77dfd.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":4,"id":"7bb20b36-273e-4f12-be3e-c25a26629bf3","page_size":[595,841],"block_position":"4-10"}],[{"bbox":[88,85,147,101],"type":"title","angle":0,"index":0,"text":"# 层次结构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":5,"id":"585a06da-d42d-4b7a-967d-d45c3dddf624","page_size":[595,841],"block_position":"5-0"},{"bbox":[107,155,274,321],"index":1,"angle":0,"type":"image","img_path":"/e05652a813ec6f7a256792d2232771ea60b9eeb292d961a51d378ac2d9fb67ae.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.280672268907563,"page_idx":5,"id":"40ca9246-0aae-443c-ac51-5ef216a02f02","page_size":[595,841],"block_position":"5-1"},{"bbox":[87,374,160,391],"type":"title","angle":0,"index":4,"text":"# 微内核结构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":5,"id":"353cba2e-48d6-4a2b-8e84-fed0a67be77c","page_size":[595,841],"block_position":"5-2"},{"bbox":[94,424,186,438],"type":"text","angle":0,"index":5,"text":"（Client/Server 模型 ）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":5,"id":"57a6e1e2-b8f7-40f2-9bc1-f1c75c6d6ecc","page_size":[595,841],"block_position":"5-3"},{"bbox":[88,460,160,477],"type":"title","angle":0,"index":6,"text":"# 宏内核结构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":5,"id":"f6f3a8b4-6eae-4736-81d4-e7ddf0c207b9","page_size":[595,841],"block_position":"5-4"},{"bbox":[105,523,398,666],"index":7,"angle":0,"type":"image","img_path":"/6e2d51ead79a58653df6b25e0c7b4a490d7e20c8c221d4d7e189140182ec8603.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.492436974789916,"page_idx":5,"id":"2430d20d-284b-4c4b-b364-375912c7607e","page_size":[595,841],"block_position":"5-5"}],[{"bbox":[86,84,226,103],"type":"title","angle":0,"index":0,"text":"# OS 的其他分类方法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":6,"id":"0a93b536-2a7b-44d2-8a91-91460c1ba254","page_size":[595,841],"block_position":"6-0"},{"bbox":[86,140,255,153],"type":"text","angle":0,"index":1,"text":"– 用户数量：单用户 OS，多用户 OS","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"id":"174f7bb4-d886-4677-915a-055249d06a33","page_size":[595,841],"block_position":"6-1"},{"bbox":[87,155,255,168],"type":"text","angle":0,"index":2,"text":"– 任务数量：单任务 OS，多任务 OS","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"id":"2dcf03ec-4c08-443e-b06e-71447c8129b8","page_size":[595,841],"block_position":"6-2"},{"bbox":[86,171,345,184],"type":"text","angle":0,"index":3,"text":"单用户单任务 OS，单用户多任务 OS，多用户多任务 OS","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"id":"4b47f7e4-e07c-4848-a394-9720e4a08b55","page_size":[595,841],"block_position":"6-3"},{"bbox":[86,186,401,200],"type":"text","angle":0,"index":4,"text":"– 计算机体系结构：微机 OS，网络 OS，多处理机 OS，分布式 OS 等","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"id":"2d65f513-2ac3-43de-98e0-c56768646fea","page_size":[595,841],"block_position":"6-4"},{"bbox":[86,221,235,239],"type":"title","angle":0,"index":5,"text":"# 操作系统的硬件基础","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":6,"id":"a61e2f3d-7dfc-4f2a-bc13-23cfc865a620","page_size":[595,841],"block_position":"6-5"},{"bbox":[87,312,133,328],"type":"title","angle":0,"index":6,"text":"# 处理器","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":6,"id":"1c3be67a-fa4a-453c-937a-29bece24f5aa","page_size":[595,841],"block_position":"6-6"},{"bbox":[87,369,161,386],"type":"title","angle":0,"index":7,"text":"# 处理器指令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":6,"id":"870afa29-4456-4b61-baf4-7ece899b6694","page_size":[595,841],"block_position":"6-7"},{"bbox":[86,419,427,433],"type":"text","angle":0,"index":8,"text":"计算机的所有操作都是由处理器指令（机器指令或计算机指令）所决定的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"id":"de0edf41-b102-4ddb-af3e-494ee726553c","page_size":[595,841],"block_position":"6-8"},{"bbox":[86,435,505,463],"type":"text","angle":0,"index":9,"text":"每条处理器指令包含处理器执行所需的信息：操作码、源操作数、目的操作数和下一条指令地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"id":"df67a1b6-1ab8-4079-b872-5ed343e89fd5","page_size":[595,841],"block_position":"6-9"},{"bbox":[87,466,238,479],"type":"text","angle":0,"index":10,"text":"寻址方式：指令寻址和数据寻址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"id":"073bafe1-a643-4268-ba4d-1f6954dcc428","page_size":[595,841],"block_position":"6-10"},{"bbox":[87,502,133,518],"type":"title","angle":0,"index":11,"text":"# 寄存器","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":6,"id":"6a80a36b-3d6d-402a-8c8b-69233aa0c87d","page_size":[595,841],"block_position":"6-11"},{"bbox":[86,553,506,582],"type":"text","angle":0,"index":12,"text":"CPU的控制部件中，包含的寄存器有指令寄存器IR和程序计数器PC、算术逻辑单元有累加器ACC。包括通用寄存器、专用寄存器和控制寄存器。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"id":"05a9ba97-53aa-4264-bac3-8ae04cb7dd93","page_size":[595,841],"block_position":"6-12"},{"bbox":[87,604,175,621],"type":"title","angle":0,"index":13,"text":"# 处理器特权级","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":6,"id":"6254fc7b-8413-43f9-ac03-0466bee27d1d","page_size":[595,841],"block_position":"6-13"},{"bbox":[86,655,442,667],"type":"text","angle":0,"index":14,"text":"计算机系统中运行的程序可以分为两大类：操作系统的管理程序和用户程序。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"id":"fef0787d-4510-4d1d-bc54-d8ca91eda6d0","page_size":[595,841],"block_position":"6-14"},{"bbox":[86,671,430,684],"type":"text","angle":0,"index":15,"text":"即，CPU 上会运行两种程序，一种是操作系统内核程序，一种是应用程序。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"id":"c4e785c8-76b3-4385-9968-1bd1289e11af","page_size":[595,841],"block_position":"6-15"},{"bbox":[87,686,295,699],"type":"text","angle":0,"index":16,"text":"多数系统将处理器特权级划分为管态和目态。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"id":"c7c3b182-596e-4997-b832-90063dfa46f8","page_size":[595,841],"block_position":"6-16"},{"bbox":[86,702,442,714],"type":"text","angle":0,"index":17,"text":"管态又称为系统态、核心态等，是操作系统管理程序运行时处理器所处状态。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"id":"59f7341b-1c8c-4d70-90b4-3fc3de00391c","page_size":[595,841],"block_position":"6-17"},{"bbox":[86,717,505,745],"type":"text","angle":0,"index":18,"text":"所谓特权指令（清内存、外部设备输入输出、修改特殊寄存器、改变机器状态等）。使用系统中所有资源等等权限。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"id":"7a58ac17-d7cf-48c5-ad13-6bcaf6c62b06","page_size":[595,841],"block_position":"6-18"},{"bbox":[87,749,367,761],"type":"text","angle":0,"index":19,"text":"目态又称为用户态，时用户程序执行时处理器其所处的状态。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"id":"231110dc-1290-4a20-85ad-b00650724a97","page_size":[595,841],"block_position":"6-19"}],[{"bbox":[88,85,133,101],"type":"title","angle":0,"index":0,"text":"# 存储器","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":7,"id":"3df5d8b0-5c69-44da-958e-f17de80a3bda","page_size":[595,841],"block_position":"7-0"},{"bbox":[105,136,186,148],"type":"text","angle":0,"index":1,"text":"磁盘的工作原理。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"ce5f3e07-72b2-418a-9d89-1f3a97107858","page_size":[595,841],"block_position":"7-1"},{"bbox":[105,151,503,179],"type":"text","angle":0,"index":2,"text":"1、盘面。每个盘片又两个盘面。每一个这样的有效盘面都由一个盘面号，按顺序从上至下、从0开始依次编号","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"c5049806-a2b5-45fb-b112-5fe3a85832dc","page_size":[595,841],"block_position":"7-2"},{"bbox":[122,183,414,195],"type":"text","angle":0,"index":3,"text":"磁面号又叫磁头号，因为每一个有效盘面都有对应的读写磁头。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"d13825b0-f344-4a19-9d09-65508b1608f0","page_size":[595,841],"block_position":"7-3"},{"bbox":[105,198,503,227],"type":"text","angle":0,"index":4,"text":"2、磁道。磁盘在低级格式化时被划分成许多同心圆。这些痛惜暖的轨迹叫做磁道。信息以脉冲串的形式记录再写轨迹中。磁道由外向内，从0开始顺序编号。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"af6ccc5b-5956-4e01-8993-6e2bbb9a4fd5","page_size":[595,841],"block_position":"7-4"},{"bbox":[122,229,503,258],"type":"text","angle":0,"index":5,"text":"每条磁道不是连续记录数据，而是划分成一段段圆弧。这些圆弧的角速度一样，线速度不一样。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"6576c7a0-fa97-4da5-90cd-c49de82e533a","page_size":[595,841],"block_position":"7-5"},{"bbox":[102,260,504,289],"type":"text","angle":0,"index":6,"text":"每一段圆弧叫做一个删去，删去从 1 开始编号。每个删去中断数据作为一个单元读出或写入。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"f027f4cb-8975-4827-ab8a-3dbe4ec7e19c","page_size":[595,841],"block_position":"7-6"},{"bbox":[105,291,504,336],"type":"text","angle":0,"index":7,"text":"3、柱面。所有盘面上的同一磁道构成一个圆柱，称作柱面。每个援助上的磁头由上而下从0开始编号 。数据的读写按柱面进行，即从0磁头开始进行从左。只有同一柱面上所有磁头全部读写完毕后，磁头才转移到下一柱面。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"68bcfece-4d35-47e4-9f88-a813aff26154","page_size":[595,841],"block_position":"7-7"},{"bbox":[121,338,503,367],"type":"text","angle":0,"index":8,"text":"选取磁头只需通过电子切换，但是柱面必须通过急切切换。所以数据的读写按柱面进行，而不是盘面进行。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"4246cbe5-b02c-4fbe-a807-5dff0e463636","page_size":[595,841],"block_position":"7-8"},{"bbox":[86,370,504,397],"type":"text","angle":0,"index":9,"text":"4．扇区。操作系统一扇区的形式将新抄袭存储在硬磁盘上。每个扇区包含两个主要部分：扇区标识符和存储数据的数据段。512B","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"b8d50324-2b9d-4d02-b842-f00692705dcc","page_size":[595,841],"block_position":"7-9"},{"bbox":[86,401,505,428],"type":"text","angle":0,"index":10,"text":"扇区标识符，又称为扇区头标，包括组成山区三维地质的三个数字：1、盘面好 2柱面号3扇区号，也叫做块号","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"7dd8577e-e03a-4812-a30a-68c2aa8db8ee","page_size":[595,841],"block_position":"7-10"},{"bbox":[129,432,195,444],"type":"text","angle":0,"index":11,"text":"还有其余字段","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"70a73ee6-89d7-4d19-b6a5-1466d619ae00","page_size":[595,841],"block_position":"7-11"},{"bbox":[86,479,149,491],"type":"text","angle":0,"index":12,"text":"CPU——进程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"819ba050-cc46-4a7b-b2de-5b3c64e5bb7f","page_size":[595,841],"block_position":"7-12"},{"bbox":[87,494,206,507],"type":"text","angle":0,"index":13,"text":"内存（主存）——存储器","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"8f8bc666-ffde-45a0-9015-9e27a4828423","page_size":[595,841],"block_position":"7-13"},{"bbox":[87,510,200,523],"type":"text","angle":0,"index":14,"text":"磁盘/硬盘——文件系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"812c49d0-d609-4eb8-8e5f-4d672bc4a4c8","page_size":[595,841],"block_position":"7-14"},{"bbox":[88,523,362,644],"index":15,"angle":0,"type":"image","img_path":"/259250d3ec3eb138fab880fb1fa77f031ae6e877c4cae498908c44e44622d37b.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.46050420168067224,"page_idx":7,"id":"d7eb3b36-f943-45e1-8455-a21d24e2111e","page_size":[595,841],"block_position":"7-15"},{"bbox":[88,668,170,687],"type":"title","angle":0,"index":16,"text":"# 中断和时钟","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":7,"id":"9616840c-8c10-4461-9f80-cb5d937a004d","page_size":[595,841],"block_position":"7-16"},{"bbox":[86,724,433,737],"type":"text","angle":0,"index":17,"text":"中断会使得 CPU 由用户态变为内核态，使操作系统重新夺回对 CPU 控制权。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"8551cdb3-b199-4406-a448-68f5361da13e","page_size":[595,841],"block_position":"7-17"},{"bbox":[86,740,504,753],"type":"text","angle":0,"index":18,"text":"内核态->用户态，执行一条特权指令修改 PSW的标志位为用户态。这个动作意味着操作系","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"id":"49466f98-53b7-4adf-b8d4-3542880abe32","page_size":[595,841],"block_position":"7-18"}],[{"bbox":[86,79,178,91],"type":"text","angle":0,"index":0,"text":"统将主动让出 CPU。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"a5d65380-cce9-4233-a204-40bba1621986","page_size":[595,841],"block_position":"8-0"},{"bbox":[86,95,504,122],"type":"text","angle":0,"index":1,"text":"用户态- $\\cdot >$ 内核态：由中断引发，硬件自动完成变态过程，触发中断信号意味着操作系统夺取CPU的使用权。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"3d0a7344-3926-4f4c-a801-207659f1a6ac","page_size":[595,841],"block_position":"8-1"},{"bbox":[87,126,220,137],"type":"text","angle":0,"index":2,"text":"响应中断时，保存到主存中。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"2d888714-0523-46ab-9b09-38a66dfe2822","page_size":[595,841],"block_position":"8-2"},{"bbox":[87,142,150,153],"type":"text","angle":0,"index":3,"text":"硬件 PS 和 PC","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"9cd18581-1218-4a57-9cac-30f13dd42eaf","page_size":[595,841],"block_position":"8-3"},{"bbox":[87,157,178,169],"type":"text","angle":0,"index":4,"text":"中断/异常处理程序","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"838e17c8-db8a-4453-bfe2-ea4c27208aac","page_size":[595,841],"block_position":"8-4"},{"bbox":[87,173,164,185],"type":"text","angle":0,"index":5,"text":"所有通用寄存器","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"28d06c21-75b5-4e1f-92a1-1dca76a6d14f","page_size":[595,841],"block_position":"8-5"},{"bbox":[87,188,262,200],"type":"text","angle":0,"index":6,"text":"需要的其他信息：中断/异常、错误码","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"b0958c9d-d0b5-441d-b6ca-100686014bc5","page_size":[595,841],"block_position":"8-6"},{"bbox":[87,204,144,216],"type":"text","angle":0,"index":7,"text":"SS ：段地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"7bec62ef-1a28-429c-8d38-329b5c25e718","page_size":[595,841],"block_position":"8-7"},{"bbox":[87,220,170,232],"type":"text","angle":0,"index":8,"text":"ESP： 端内偏移量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"cb343f51-a786-4549-8cd1-2ce2c3a64b3e","page_size":[595,841],"block_position":"8-8"},{"bbox":[87,235,164,247],"type":"text","angle":0,"index":9,"text":"按中断功能分类","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"960c5468-65a4-4e5d-8968-8a6098a7615e","page_size":[595,841],"block_position":"8-9"},{"bbox":[87,250,284,263],"type":"text","angle":0,"index":10,"text":"1、输入输出中断I/O 传输结束或出错终端","id":"d9bed306-0c8d-431b-ad02-d75f1a5dc147","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"page_size":[595,841],"block_position":"8-10"},{"bbox":[87,266,329,279],"type":"text","angle":0,"index":11,"text":"2、外中断：时钟中断、操作员控制中断、通信中断","id":"245b3615-03ad-43a3-9f2d-61b04fdd5521","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"page_size":[595,841],"block_position":"8-11"},{"bbox":[87,281,308,294],"type":"text","angle":0,"index":12,"text":"3、机器的故障中断：电源故障、主存取指令等","id":"99f90de9-3c0a-401e-9b27-eab5d590b8a8","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"page_size":[595,841],"block_position":"8-12"},{"bbox":[86,297,339,310],"type":"text","angle":0,"index":13,"text":"4、 程序性中断：（？）溢出、用户态下用核心态指令","id":"2c16a549-a542-48a0-93f8-5977f3c60e6c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"page_size":[595,841],"block_position":"8-13"},{"bbox":[87,313,150,325],"type":"text","angle":0,"index":15,"text":"5、访管中断","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"c82ba9a5-af7c-4f19-b2ff-999367c4793e","page_size":[595,841],"block_position":"8-14"},{"bbox":[87,328,236,341],"type":"text","angle":0,"index":16,"text":"要么是执行用户态中的代码——","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"1bee5b99-a2d2-4dbd-be9c-730b03ceb617","page_size":[595,841],"block_position":"8-15"},{"bbox":[87,343,215,356],"type":"text","angle":0,"index":17,"text":"要么执行核心态的代码——","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"d5095976-2cd1-4999-8a30-0d22a0d30280","page_size":[595,841],"block_position":"8-16"},{"bbox":[331,379,383,398],"type":"title","angle":0,"index":20,"text":"# 九曲阑干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":8,"id":"3877204f-92bb-4951-b26a-3b43c875b8d6","page_size":[595,841],"block_position":"8-17"},{"bbox":[114,401,385,542],"index":21,"angle":0,"type":"image","img_path":"/1b44b5af64decdd77f6ae83d8478a33f80e2c7fce32681c40b28d11d46adfec7.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.45546218487394957,"page_idx":8,"id":"56fc2a0a-1901-4e46-9983-d81db03334ca","page_size":[595,841],"block_position":"8-18"},{"bbox":[87,546,132,560],"type":"text","angle":0,"index":22,"text":"系统调用","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"d4be436c-d10d-4059-9d0f-a5ab446cc50c","page_size":[595,841],"block_position":"8-19"},{"bbox":[87,562,142,575],"type":"text","angle":0,"index":23,"text":"用陷入指令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"15831063-48d9-44a1-94f1-328635ab5c99","page_size":[595,841],"block_position":"8-20"},{"bbox":[87,577,164,590],"type":"text","angle":0,"index":24,"text":"操作系统的启动","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"a280e7d7-46e4-46fd-b7f4-e790e93fafd7","page_size":[595,841],"block_position":"8-21"},{"bbox":[87,593,195,605],"type":"text","angle":0,"index":25,"text":"操作系统存储在硬盘上","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"b1ec1185-0363-4a9a-86ce-0cfa454b716a","page_size":[595,841],"block_position":"8-22"},{"bbox":[87,608,258,621],"type":"text","angle":0,"index":26,"text":"操作系统从硬盘加载到内存里去运行","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"de9b18b3-e0c6-4c82-9ff6-dab858d8de5f","page_size":[595,841],"block_position":"8-23"},{"bbox":[87,624,241,637],"type":"text","angle":0,"index":27,"text":"CPU执行的第一条指令来自哪里？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"a1f9afec-034d-4168-8772-8aa18c22205d","page_size":[595,841],"block_position":"8-24"},{"bbox":[87,640,164,652],"type":"text","angle":0,"index":28,"text":"将 CS 和 RIP 复位","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"8126c243-c862-44ea-b5cd-0905c7d70301","page_size":[595,841],"block_position":"8-25"},{"bbox":[87,655,333,669],"type":"text","angle":0,"index":29,"text":"从 ROM（BIOS 程序）中读取 basic input/output system","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"6d91bcf9-1538-4d38-9884-2739e676c90b","page_size":[595,841],"block_position":"8-26"}],[{"bbox":[87,73,364,236],"index":0,"angle":0,"type":"image","img_path":"/436cfb9a722aa06ea9e117cdd76ede7e5e6d1b16475e90a82da6601c667367a5.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.46554621848739497,"page_idx":9,"id":"c9fb005c-08c8-4cf6-a09e-0dd9a65dca39","page_size":[595,841],"block_position":"9-0"},{"bbox":[95,243,274,257],"type":"text","angle":0,"index":1,"text":"1.上电自检(POST，Power-on Self-Test)","id":"b631c238-ed4b-46ac-8295-f6b8e64b56bb","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"page_size":[595,841],"block_position":"9-1"},{"bbox":[96,268,178,280],"type":"text","angle":0,"index":2,"text":"2.初始化硬件设备","id":"b29bee94-4b64-4b88-a40c-92877ab4c2a9","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"page_size":[595,841],"block_position":"9-2"},{"bbox":[96,293,324,306],"type":"text","angle":0,"index":3,"text":"3.搜索一个操作系统来启动。例如：硬盘、U盘、光盘","id":"aff51a90-36d5-4365-a442-94b2e59906b2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"page_size":[595,841],"block_position":"9-3"},{"bbox":[96,319,343,348],"type":"text","angle":0,"index":4,"text":"4.找到有效的设备后，把第一个扇区的内容拷贝到内存中起始地址是0x00007c00，然后跳转到这个地址处","id":"4815055a-59e8-4717-a86d-587f3d24fb28","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"page_size":[595,841],"block_position":"9-4"},{"bbox":[298,360,342,376],"type":"title","angle":0,"index":8,"text":"# 九曲闲干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":9,"id":"581d6c56-24e9-4c81-957a-8ca855d9b1fc","page_size":[595,841],"block_position":"9-5"},{"bbox":[103,383,345,396],"type":"text","angle":0,"index":9,"text":"扇区，磁盘基本的读写单位，通常一个扇区大小是512个字节5B","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"id":"aebce481-fd0c-438f-928e-fe1f0e01b603","page_size":[595,841],"block_position":"9-6"},{"bbox":[105,401,315,413],"type":"text","angle":0,"index":10,"text":"·硬盘的第一个扇区称为主引导记录（MBR，Master Boot Record）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"id":"247e173e-f0cb-4914-9fba-c3e34b1777d1","page_size":[595,841],"block_position":"9-7"},{"bbox":[112,417,255,428],"type":"text","angle":0,"index":11,"text":"·引导程序（bootloader），大小446 Byte","id":"d6e7171c-c355-431a-b144-c30aa2abd9fb","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"page_size":[595,841],"block_position":"9-8"},{"bbox":[111,431,342,444],"type":"text","angle":0,"index":12,"text":"","id":"c484bc69-8c64-44f6-bf71-7c777f405786","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"page_size":[595,841],"block_position":"9-9"},{"bbox":[112,452,193,462],"type":"text","angle":0,"index":14,"text":"引导程序（boot loader）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"id":"e007f5ab-d3d4-4355-8468-b9102e5e9ac7","page_size":[595,841],"block_position":"9-10"},{"bbox":[111,466,324,476],"type":"text","angle":0,"index":15,"text":"根据分区表的信息，寻找操作系统所在的具体分区，加载操作系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"id":"602f24e3-fe3b-4e15-9d12-b774e7eff27c","page_size":[595,841],"block_position":"9-11"},{"bbox":[98,503,287,518],"type":"text","angle":0,"index":16,"text":"由于空间的限制，引导程序一般需要两步","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"id":"dce0318b-cd9f-4582-a1dd-f382972d9515","page_size":[595,841],"block_position":"9-12"},{"bbox":[110,523,235,537],"type":"text","angle":0,"index":17,"text":"","id":"029b554d-de29-4db3-b4d5-f8ba32ce57d7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"page_size":[595,841],"block_position":"9-13"},{"bbox":[109,546,277,561],"type":"text","angle":0,"index":18,"text":"·第二步，分区引导程序执行内核的加载","id":"6addfbca-aa29-48a2-83a1-b81bdd8f8497","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"page_size":[595,841],"block_position":"9-14"},{"bbox":[91,579,416,656],"index":20,"angle":0,"type":"image","img_path":"/92622f4b31f4c2e16b7acc7dc470a52316dfb0d702766d7e86671d56eb15d494.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5462184873949579,"page_idx":9,"id":"a37e71a4-1400-4235-b830-6c0423d51a4a","page_size":[595,841],"block_position":"9-15"},{"bbox":[86,702,379,715],"type":"text","angle":0,"index":21,"text":"中断一般是异步的，由硬件随机产生，中断信号来自 CPU 外部。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"id":"156174eb-3ab6-446f-9963-9f4ca97b1e92","page_size":[595,841],"block_position":"9-16"},{"bbox":[86,717,503,746],"type":"text","angle":0,"index":22,"text":"异常一般是同步的，在特殊的或出错指令执行时由 CPU控制单元产生，中断信号来源于CPU内部，内中断。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"id":"2eec6a32-0196-4e25-a547-e77cf384a605","page_size":[595,841],"block_position":"9-17"},{"bbox":[86,749,504,762],"type":"text","angle":0,"index":23,"text":"中断进一步可分为屏蔽中断和非屏蔽中断。可屏蔽中断是由程序控制器屏蔽行的中断，处","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"id":"e862532c-dc7f-4c9a-b463-5a7d5b44d05b","page_size":[595,841],"block_position":"9-18"}],[{"bbox":[86,79,282,91],"type":"text","angle":0,"index":0,"text":"于屏蔽状态时，处理器忽略该类中断信号。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"beb8a5e5-661f-4958-be4a-44f0146b321d","page_size":[595,841],"block_position":"10-0"},{"bbox":[86,95,272,106],"type":"text","angle":0,"index":1,"text":"非屏蔽中断，不能由程序控制其屏蔽性。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"1689c558-ba6d-4b49-93fa-9793ea3961fc","page_size":[595,841],"block_position":"10-1"},{"bbox":[87,110,146,121],"type":"text","angle":0,"index":2,"text":"异常又包括：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"efb8419e-5e92-48f8-a280-5c6bf730e420","page_size":[595,841],"block_position":"10-2"},{"bbox":[88,126,160,137],"type":"title","angle":0,"index":3,"text":"# 1、处理器异常","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":10,"id":"abb5c659-41e4-4e8b-b0ac-e25aecee5d0f","page_size":[595,841],"block_position":"10-3"},{"bbox":[105,142,129,153],"type":"text","angle":0,"index":4,"text":"故障","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"ffb959c3-3839-438d-aa50-6a35daea0995","page_size":[595,841],"block_position":"10-4"},{"bbox":[106,157,129,169],"type":"text","angle":0,"index":5,"text":"陷阱","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"95e45069-5635-49d5-b827-b2015407fbf0","page_size":[595,841],"block_position":"10-5"},{"bbox":[106,173,149,185],"type":"text","angle":0,"index":6,"text":"异常终止","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"604538ad-0a30-4a24-a530-51eca6533370","page_size":[595,841],"block_position":"10-6"},{"bbox":[87,188,149,200],"type":"title","angle":0,"index":7,"text":"# 2、编程异常","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":10,"id":"f663e4fd-3d27-4709-bc2f-44dadaa242de","page_size":[595,841],"block_position":"10-7"},{"bbox":[88,203,132,215],"type":"title","angle":0,"index":8,"text":"# 屏蔽中断","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":10,"id":"fb35d544-cd7a-49cb-9888-38185493b850","page_size":[595,841],"block_position":"10-8"},{"bbox":[86,217,286,237],"type":"text","angle":0,"index":9,"text":"对于单处理器系统，最简单的方法就是每个进程刚刚进入临界区后，立即屏蔽所有中断，在离开之前再打开中断。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"328e1b5f-4582-4b6b-b1a4-fcf418f42c1a","page_size":[595,841],"block_position":"10-9"},{"bbox":[86,241,263,249],"type":"text","angle":0,"index":10,"text":"CPU只有发生时钟中断或者其他中断时，才会进行进程切换。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"c4d7dd8a-d9c0-4b9d-b8a3-8739020c7076","page_size":[595,841],"block_position":"10-10"},{"bbox":[86,260,255,269],"type":"text","angle":0,"index":11,"text":"对于多核处理器，屏蔽中断只对执行屏蔽指令的CPU有效","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"95e82306-fa8b-4359-a926-e65b76021305","page_size":[595,841],"block_position":"10-11"},{"bbox":[86,278,289,286],"type":"text","angle":0,"index":12,"text":"对于内核来说，当使用几条指令更新变量时，将中断屏蔽是很方便的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"9ad91a8c-00d4-461a-954b-19d06b82da0a","page_size":[595,841],"block_position":"10-12"},{"bbox":[86,294,284,311],"type":"text","angle":0,"index":13,"text":"一种合适的通用互斥机制。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"876f82b9-1870-49c0-a201-a69cd3ed93a5","page_size":[595,841],"block_position":"10-13"},{"bbox":[86,327,504,356],"type":"text","angle":0,"index":14,"text":"用户获得中断的权限会有系统风险。一个进程禁止中断后，一直没有开放中断，会影响系统的正常运行。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"1365eb8f-be58-4b70-a5cd-8efcdeaf487f","page_size":[595,841],"block_position":"10-14"},{"bbox":[105,396,243,413],"type":"title","angle":0,"index":15,"text":"# 中断/异常混淆的概念","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":10,"id":"f054416b-2f36-4fd4-81e6-9e454487aaf8","page_size":[595,841],"block_position":"10-15"},{"bbox":[368,395,427,417],"type":"title","angle":0,"index":16,"text":"# 九曲闲干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":10,"id":"43290572-82fb-473e-af77-efe0a51e0bf1","page_size":[595,841],"block_position":"10-16"},{"bbox":[101,423,314,454],"type":"text","angle":0,"index":17,"text":"·操作系统启动时，分配和初始化一个跳转表","id":"1ca54f96-4b66-4243-8646-3d60cc570ea7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"page_size":[595,841],"block_position":"10-17"},{"bbox":[102,470,315,482],"type":"text","angle":0,"index":18,"text":"","id":"00e876e2-67d9-49d7-8ecd-bf9344242e59","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"page_size":[595,841],"block_position":"10-18"},{"bbox":[102,495,315,523],"type":"text","angle":0,"index":19,"text":"例如：缺页故障、缺页异常、缺页表示同一含义","id":"98b25a43-07d8-47e3-8b45-30674e83a078","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"page_size":[595,841],"block_position":"10-19"},{"bbox":[103,541,406,575],"type":"text","angle":0,"index":20,"text":"Intel手册中将中断分为内中断和外中断，内中断与异常表示同一含义","id":"a9842901-9946-44a0-b341-bc19dd99f2b4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"page_size":[595,841],"block_position":"10-20"}],[{"bbox":[88,75,595,259],"index":0,"angle":0,"type":"image","img_path":"/f1ad9accb4893c0dea1c5bf85152beef8e22c2e50d5b85e4ad7aa6c886cfb9a5.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.8521008403361344,"page_idx":11,"id":"7c5fdb71-3048-4f17-a401-663182cd837a","page_size":[595,841],"block_position":"11-0"},{"bbox":[88,285,119,302],"type":"title","angle":0,"index":1,"text":"# 中断","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":11,"id":"8fda17a3-29d1-4b21-9556-578883bdff28","page_size":[595,841],"block_position":"11-1"},{"bbox":[88,336,333,350],"type":"text","angle":0,"index":2,"text":"当前 CPU 执行完指令，中断引脚电压变高说明有中断","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":11,"id":"ed2c5079-19df-479c-8283-078d0986587b","page_size":[595,841],"block_position":"11-2"},{"bbox":[88,352,164,365],"type":"text","angle":0,"index":3,"text":"然后去响应中断","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":11,"id":"d1f7c672-057b-43bd-9360-ebe2378c098e","page_size":[595,841],"block_position":"11-3"},{"bbox":[88,368,132,380],"type":"text","angle":0,"index":4,"text":"时钟中断","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":11,"id":"5a5df6b5-1a4f-448c-9c99-d134f3662b26","page_size":[595,841],"block_position":"11-4"},{"bbox":[88,384,148,396],"type":"text","angle":0,"index":5,"text":"I/O中断请求","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":11,"id":"34faab60-2dcd-4937-b652-a4779c79ffbe","page_size":[595,841],"block_position":"11-5"},{"bbox":[88,399,152,412],"type":"text","angle":0,"index":6,"text":"不同中断信号","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":11,"id":"2ceee0e0-a9a8-4dae-a321-46a4cf26da41","page_size":[595,841],"block_position":"11-6"},{"bbox":[88,415,143,428],"type":"text","angle":0,"index":7,"text":"中断向量表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":11,"id":"6edac028-5643-4a13-9f95-8cf7e09a503a","page_size":[595,841],"block_position":"11-7"},{"bbox":[88,430,206,443],"type":"text","angle":0,"index":8,"text":"中断处理程序处于内核态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":11,"id":"40bd5b70-a4bb-4e67-94e0-449d3d20649f","page_size":[595,841],"block_position":"11-8"},{"bbox":[88,444,411,550],"index":9,"angle":0,"type":"image","img_path":"/dfc01753df0f69c7b2be3aaf2ac24667df63af7b54165d5495774ccc83b32e15.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5428571428571428,"page_idx":11,"id":"7cc6ea9f-7dd0-4ee3-9b2d-a49d44f7be96","page_size":[595,841],"block_position":"11-9"}],[{"bbox":[88,84,120,101],"type":"title","angle":0,"index":0,"text":"# 陷阱","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":12,"id":"f28d3be5-35bf-4b8b-9ddf-a78b2af6d264","page_size":[595,841],"block_position":"12-0"},{"bbox":[88,132,477,343],"index":1,"angle":0,"type":"image","img_path":"/b78e84d58dc676643c80c101240c825e813e9e9047cf52b9742db6689be3753d.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.653781512605042,"page_idx":12,"id":"4a59a5c9-4031-4e1d-bfbd-21919e1cca3d","page_size":[595,841],"block_position":"12-1"},{"bbox":[87,374,119,390],"type":"title","angle":0,"index":2,"text":"# 故障","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":12,"id":"d5c869d8-dadb-4c68-b3f3-3b8a48449e3f","page_size":[595,841],"block_position":"12-2"},{"bbox":[86,424,279,439],"type":"text","angle":0,"index":3,"text":"缺页故障、缺页异常——地址不在内存中","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"ae7cfff2-732e-4450-84ff-eb5f4cbaf275","page_size":[595,841],"block_position":"12-3"},{"bbox":[88,440,207,453],"type":"text","angle":0,"index":4,"text":"保护异常——地址不合法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"d12d1189-b4f5-4eb6-b670-d66105250a9f","page_size":[595,841],"block_position":"12-4"},{"bbox":[88,456,227,468],"type":"text","angle":0,"index":5,"text":"因此需要再次取一次故障指令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"90f779b2-a4d3-46df-aed6-2c817ac1413b","page_size":[595,841],"block_position":"12-5"},{"bbox":[88,469,508,590],"index":6,"angle":0,"type":"image","img_path":"/47e683f97cfcb1e83fd0f5380803eae1066353b0d0b847f7b75dd6b2e0db8779.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7058823529411765,"page_idx":12,"id":"1689448a-0c11-4dce-aded-556c789558b2","page_size":[595,841],"block_position":"12-6"}],[{"bbox":[88,85,119,101],"type":"title","angle":0,"index":0,"text":"# 中止","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":13,"id":"ce75808b-d0df-40e9-af4b-ff2b9c52dd3e","page_size":[595,841],"block_position":"13-0"},{"bbox":[88,132,523,255],"index":1,"angle":0,"type":"image","img_path":"/4a31576b14a791537c99077ff350c866216ba52927e7321a2fa4f99fbff197d1.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7310924369747899,"page_idx":13,"id":"ee5faf4a-34dd-4c3e-b3c3-35c5c0497b56","page_size":[595,841],"block_position":"13-1"},{"bbox":[88,296,132,312],"type":"title","angle":0,"index":2,"text":"# 异常表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":13,"id":"f6c480fb-0f7d-4e15-83c8-7fc9c07760d8","page_size":[595,841],"block_position":"13-2"},{"bbox":[88,347,154,359],"type":"text","angle":0,"index":3,"text":"存储在内存中","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"07e4b603-6e7c-4f77-b7ec-7a8a46cd256c","page_size":[595,841],"block_position":"13-3"},{"bbox":[88,362,185,375],"type":"text","angle":0,"index":4,"text":"异常号相当于偏移量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"7dd2c1cb-6d19-40c3-a984-9908c742e985","page_size":[595,841],"block_position":"13-4"},{"bbox":[88,378,174,391],"type":"text","angle":0,"index":5,"text":"找到异常处理程序","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"98c3fe10-320f-4523-8552-f72d0676f6dd","page_size":[595,841],"block_position":"13-5"},{"bbox":[88,391,284,481],"index":6,"angle":0,"type":"image","img_path":"/8c1cdb8de23cdc4bf55f3d3ee93d37ff2f4bc25332daeb2d15e48f53afcb64ff.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.32941176470588235,"page_idx":13,"id":"278e7b5f-0226-490b-92bb-b987ff42735d","page_size":[595,841],"block_position":"13-6"},{"bbox":[88,500,333,567],"index":7,"angle":0,"type":"image","img_path":"/3e8b269fca3357d31be03b7a3ce82320dbe231c6298538f573b31b85ae00d202.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4117647058823529,"page_idx":13,"id":"c653e466-b2f9-49b4-b71c-131e4ead39f4","page_size":[595,841],"block_position":"13-7"},{"bbox":[102,587,428,687],"index":8,"angle":0,"type":"table_body","img_path":"/","id":"3d24339f-f23f-43f1-92db-b1098e71a70a","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>异常号</td><td>描述</td><td>异常类别</td></tr><tr><td>0</td><td>除法错误</td><td>故障</td></tr><tr><td>13</td><td>一般保护故障</td><td>故障</td></tr><tr><td>14</td><td>缺页</td><td>故障</td></tr><tr><td>18</td><td>机器检查</td><td>终止</td></tr><tr><td>32~255</td><td>操作系统定义的异常</td><td>中断或陷阱</td></tr></table>","page_idx":13,"page_size":[595,841],"block_position":"13-8"},{"bbox":[179,688,349,702],"index":9,"angle":0,"type":"table_caption","text":"图8-9x86-64系统中的异常示例","id":"fae6e4e6-ccde-4cc0-bf59-3a134e81eec6","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"page_size":[595,841],"block_position":"13-9"}],[{"bbox":[88,84,202,103],"type":"title","angle":0,"index":0,"text":"# 陷阱和系统调用","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":14,"id":"984e5c20-cf99-4501-a7ff-a584ee9762ed","page_size":[595,841],"block_position":"14-0"},{"bbox":[88,147,147,163],"type":"title","angle":0,"index":1,"text":"# 系统调用","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":14,"id":"a8a2e345-4851-4271-a5d5-8620a81289a3","page_size":[595,841],"block_position":"14-1"},{"bbox":[86,213,507,244],"type":"text","angle":0,"index":2,"text":"操作系统作为用户和计算机硬件之间的接口，为方便用户调用这些内核服务功能需要提供一些简单易用的服务。主要包括命令接口和程序接口，其中程序接口由一组系统调用组成","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"09534094-03fe-44f6-a698-8158b0c863e9","page_size":[595,841],"block_position":"14-2"},{"bbox":[87,275,207,289],"type":"text","angle":0,"index":3,"text":"用户态和核心（内核）态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"182c3aed-3db3-46ef-9284-cc0f18c13b3e","page_size":[595,841],"block_position":"14-3"},{"bbox":[88,290,196,304],"type":"text","angle":0,"index":4,"text":"用户不能直接访问磁盘","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"a9b6caf9-31ed-4cf3-9fb5-9c3fe3796201","page_size":[595,841],"block_position":"14-4"},{"bbox":[88,306,226,320],"type":"text","angle":0,"index":5,"text":"只能通过操作系统提供的接口","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"d29ef37a-5b04-4634-af90-d9c2d8d1ebf0","page_size":[595,841],"block_position":"14-5"},{"bbox":[88,322,206,335],"type":"text","angle":0,"index":6,"text":"操作系统替用户访问磁盘","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"ff1ea41f-de18-4a44-b9d6-31d26f86d7a4","page_size":[595,841],"block_position":"14-6"},{"bbox":[87,338,497,351],"type":"text","angle":0,"index":7,"text":"执行系统调用（请求操作系统内核的服务），程序必须执行特殊的陷阱指令（syscall x86）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"bf7209fd-7633-4ca6-8df8-dbd39b6ad28c","page_size":[595,841],"block_position":"14-7"},{"bbox":[87,354,505,382],"type":"text","angle":0,"index":8,"text":"可以理解为一种可供程序调用的特殊函数，应用程序可以通过系统调用来获得操作系统内核的服务","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"123090f2-c99a-47b2-8443-0d43a764b710","page_size":[595,841],"block_position":"14-8"},{"bbox":[88,399,364,532],"index":9,"angle":0,"type":"table_body","img_path":"/","id":"2617f1d3-c7a6-460e-baaf-784640caf110","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>普通应用程序</td><td>可直接进行系统调用，也可使用库函数。有的库函数涉及系统调用，有的不涉及</td></tr><tr><td>编程语言</td><td>向上提供库函数。有时会将系统调用封装成库函数，以隐藏系统调用的一些细节，使程序员编程更加方便。</td></tr><tr><td>操作系统</td><td>向上提供系统调用，使得上层程序能请求内核的服务</td></tr><tr><td>裸机</td><td></td></tr></table>","page_idx":14,"page_size":[595,841],"block_position":"14-9"},{"bbox":[102,608,481,709],"index":10,"angle":0,"type":"image","img_path":"/23b678a97c5812bdc937a6dc92b48374e1ad9c2c4b7ad25dc8f45d764b201265.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6369747899159663,"page_idx":14,"id":"bae0afd7-314d-4407-9964-bef94f3d90f4","page_size":[595,841],"block_position":"14-10"}],[{"bbox":[86,79,505,138],"type":"text","angle":0,"index":0,"text":"由于应用程序运行在用户态，而系统调用服务例程运行在内核态，因此应用程序布恩那个直接调用内核发服务例程，而是通过执行一条叫做“访管指令”（陷入指令/trap指令）的机器指令来实现调用的，这条指令的功能时引发一个编程异常，促使 CPU从用户态切换到内核态，即系统调用入口程序","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":15,"id":"e4cc4b7f-7804-400a-85a8-d05683e13074","page_size":[595,841],"block_position":"15-0"},{"bbox":[86,141,395,155],"type":"text","angle":0,"index":1,"text":"根据向量号查找中断描述表，得到该异常的中断处理程序入口地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":15,"id":"b5a9481b-f9e1-4b67-abbe-a0dba978e64d","page_size":[595,841],"block_position":"15-1"},{"bbox":[86,157,379,170],"type":"text","angle":0,"index":2,"text":"执行 system_call()函数，找到这个系统调用服务例程的入口地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":15,"id":"6cce4899-0ac0-4c49-9fb3-c802213d4bec","page_size":[595,841],"block_position":"15-2"},{"bbox":[86,188,269,201],"type":"text","angle":0,"index":3,"text":"程序的特权级从用户模型提升至内核级","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":15,"id":"aaaa3295-6544-49a6-b7d9-89c11451cf24","page_size":[595,841],"block_position":"15-3"},{"bbox":[86,203,322,216],"type":"text","angle":0,"index":4,"text":"一旦进入内核，系统可以执行任何需要的特权操作","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":15,"id":"a0d013dd-a72c-4913-be3c-0d102df56433","page_size":[595,841],"block_position":"15-4"},{"bbox":[86,219,350,232],"type":"text","angle":0,"index":5,"text":"当系统完成后，执行从陷阱返回（return-from-trap）指令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":15,"id":"16233312-48da-44ba-80b2-9d5ffa778931","page_size":[595,841],"block_position":"15-5"},{"bbox":[86,235,283,248],"type":"text","angle":0,"index":6,"text":"因此陷阱指令是用户使用系统调用的窗口。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":15,"id":"76977dd7-b7f5-4eea-a08a-517e8ef9bc41","page_size":[595,841],"block_position":"15-6"},{"bbox":[87,250,190,263],"type":"text","angle":0,"index":7,"text":"用户->read->访问磁盘","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":15,"id":"66c4d52e-f1e2-4e39-a45e-87cafebd27de","page_size":[595,841],"block_position":"15-7"},{"bbox":[88,265,348,377],"index":8,"angle":0,"type":"image","img_path":"/f541eaa76f03a3c47a4acbdfad91f50ea73e023de24545084f09bfe81f8b870d.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4369747899159664,"page_idx":15,"id":"e8bc8809-382e-4edd-ad9f-bcfd97e87b3e","page_size":[595,841],"block_position":"15-8"},{"bbox":[87,391,178,403],"type":"text","angle":0,"index":9,"text":"Sys_call 是在内核态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":15,"id":"a2c1bc1b-f09f-41f0-a784-5045410f2f09","page_size":[595,841],"block_position":"15-9"},{"bbox":[87,406,195,418],"type":"text","angle":0,"index":10,"text":"系统调用函数在内核态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":15,"id":"57804c3d-9a1c-4c2e-9a15-f33d1d959107","page_size":[595,841],"block_position":"15-10"},{"bbox":[87,422,268,433],"type":"text","angle":0,"index":11,"text":"执行哪一个系统调用？ 系统调用号","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":15,"id":"2ac3edd0-1b4f-4164-b32b-7c9fc21d97fc","page_size":[595,841],"block_position":"15-11"},{"bbox":[88,434,345,577],"index":12,"angle":0,"type":"image","img_path":"/340325887d6ef29dce84caf31271f6e50e64721467c65932bf5bd69766d384e9.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4319327731092437,"page_idx":15,"id":"aee91d2d-ba25-4384-9b2c-21f9a8e9a46a","page_size":[595,841],"block_position":"15-12"},{"bbox":[88,591,345,675],"index":13,"angle":0,"type":"table_body","img_path":"/","id":"895bf7c3-46e9-4925-8d44-13b570e07b53","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>编号</td><td>名字</td><td>描述</td><td>编号</td><td>名字</td><td>描述</td></tr><tr><td>0</td><td>read</td><td>读文件</td><td>33</td><td>pause</td><td>挂起进程直到信号到达</td></tr><tr><td>1</td><td>write</td><td>写文件</td><td>37</td><td>alarm</td><td>调度告警信号的传送</td></tr><tr><td>2</td><td>open</td><td>打开文件</td><td>39</td><td>getpid</td><td>获得进程ID</td></tr><tr><td>3</td><td>close</td><td>关闭文件</td><td>57</td><td>fork</td><td>创建进程</td></tr><tr><td>4</td><td>stat</td><td>获得文件信息</td><td>59</td><td>exe#ve</td><td>执行一个程序</td></tr><tr><td>9</td><td>mmap</td><td>将内存页映射到文件</td><td>60</td><td>exit</td><td>终止进程</td></tr><tr><td>12</td><td>brk</td><td>重置堆顶</td><td>61</td><td>halt4</td><td>等待一个进程终止</td></tr><tr><td>32</td><td>dup2</td><td>复制文件描述符</td><td>62</td><td>k#1</td><td>发送信号到一个进程</td></tr></table>","page_idx":15,"page_size":[595,841],"block_position":"15-13"},{"bbox":[87,687,364,699],"type":"text","angle":0,"index":14,"text":"控制寄存器有一位记录了当前模式是用户模式还是内核模式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":15,"id":"e4b65c13-dc18-4d40-ac21-618e27d33873","page_size":[595,841],"block_position":"15-14"}],[{"bbox":[88,97,263,106],"type":"text","angle":0,"index":1,"text":">·进程在用户模式下不运行执行特权指令/操作","id":"802e0255-07a7-4c91-a00e-a040dd5b59e4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"page_size":[595,841],"block_position":"16-0"},{"bbox":[106,107,286,121],"type":"text","angle":0,"index":2,"text":"进在停止处理、起一个1/权操作，操中","id":"228ddd3e-2cfa-4726-a511-bba07da00ea1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"page_size":[595,841],"block_position":"16-1"},{"bbox":[96,126,290,137],"type":"text","angle":0,"index":3,"text":"·不允许在用户模式下直接引用内核区域的代码和数据","id":"9bec8667-9f0c-4d0a-b851-3e9257f66d03","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"page_size":[595,841],"block_position":"16-2"},{"bbox":[96,152,321,162],"type":"text","angle":0,"index":4,"text":"","id":"90498af1-4e89-4170-bef5-c3573974613f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"page_size":[595,841],"block_position":"16-3"},{"bbox":[88,183,294,290],"index":6,"angle":0,"type":"image","img_path":"/6df2c8106dd4fe2552e1c66a682d466406fbe481810f4e6b4594199d20da974c.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.346218487394958,"page_idx":16,"id":"d081fd9f-fe97-4c45-9a70-44f10f3bbb3f","page_size":[595,841],"block_position":"16-4"},{"bbox":[87,292,332,400],"index":7,"angle":0,"type":"image","img_path":"/309bb212126a35535f1ad1913041d8a152f86709dc8e47401d52a42c162f064c.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4117647058823529,"page_idx":16,"id":"2c742130-efa1-48a5-a83c-000f121e172f","page_size":[595,841],"block_position":"16-5"},{"bbox":[87,424,154,443],"type":"title","angle":0,"index":8,"text":"# 进程管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":16,"id":"d13a0f9e-fd31-4e0f-b531-b4a6523d2c38","page_size":[595,841],"block_position":"16-6"},{"bbox":[87,480,163,492],"type":"title","angle":0,"index":9,"text":"# 引入进程的原因","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":16,"id":"f0d7938f-78cb-4e65-aa3a-bbeec4ae5f96","page_size":[595,841],"block_position":"16-7"},{"bbox":[88,496,174,508],"type":"title","angle":0,"index":10,"text":"# 1. 引入进程的原因","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":16,"id":"5903e5d5-19ff-4e80-b96e-85fc81c1b716","page_size":[595,841],"block_position":"16-8"},{"bbox":[87,511,312,523],"type":"text","angle":0,"index":11,"text":"– 为了提高资源利用率必须让多个程序并发运行。","id":"1a21b77d-6f23-408b-9bfa-1925f1fa6795","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"page_size":[595,841],"block_position":"16-9"},{"bbox":[87,526,421,539],"type":"text","angle":0,"index":12,"text":"– 程序的并发运行出现了新的特征：间断性、 失去封闭性、 不可再现性。","id":"ad5f30d6-867c-4d6d-af8c-8a94d98a9bf4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"page_size":[595,841],"block_position":"16-10"},{"bbox":[88,542,301,555],"type":"text","angle":0,"index":13,"text":"– 为了让程序能正确并发运行，引入进程概念。","id":"af0f7864-36bc-4cb5-a0f3-378b3144165e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"page_size":[595,841],"block_position":"16-11"},{"bbox":[86,573,268,586],"type":"text","angle":0,"index":15,"text":"操作系统的代码是所有进程的公共代码","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"id":"77974bc4-d3c8-45a7-ba51-759779ac512a","page_size":[595,841],"block_position":"16-12"},{"bbox":[88,589,185,602],"type":"title","angle":0,"index":16,"text":"# 运行模式和进程切换","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":16,"id":"87bd19d2-1a68-44f8-bf5b-b7c987412185","page_size":[595,841],"block_position":"16-13"},{"bbox":[88,602,172,699],"index":17,"angle":0,"type":"image","img_path":"/d2818a53733fb719994bb7c40f2b4cd2201f2ffe88c5b84c92b960d355df54c3.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":16,"id":"7741c339-f786-4419-a55a-14ef8249399a","page_size":[595,841],"block_position":"16-14"},{"bbox":[107,704,142,717],"index":18,"angle":0,"type":"image_caption","text":"进程1","id":"475c6e30-ed3f-424f-ae62-b0cce8528389","color":{"line":"rgba(13, 83, 222 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"page_size":[595,841],"block_position":"16-15"},{"bbox":[178,601,404,723],"index":19,"angle":0,"type":"image","img_path":"/41c3feaf39deb0a28146bdebdf2ee87a65fae697302b68dd62e3cc06b710b300.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3798319327731092,"page_idx":16,"id":"698fcd9c-a1c4-45ad-b9b0-8bc40cfc289f","page_size":[595,841],"block_position":"16-16"},{"bbox":[87,745,158,758],"type":"text","angle":0,"index":20,"text":"如何切换进程？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"id":"0cf725c1-cdd4-4277-b59b-a46f2741b49d","page_size":[595,841],"block_position":"16-17"}],[{"bbox":[86,79,227,91],"type":"text","angle":0,"index":0,"text":"要从用户模式切换到内核模式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"f1e22c70-1650-43c9-ae75-fa81b05443ad","page_size":[595,841],"block_position":"17-0"},{"bbox":[87,95,258,108],"type":"text","angle":0,"index":1,"text":"访问了内核区域，触发一般保护故障","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"d00738c4-e847-476c-85ae-9bbf04259981","page_size":[595,841],"block_position":"17-1"},{"bbox":[86,125,326,138],"type":"text","angle":0,"index":2,"text":"进程：一个正在运行程序的抽象，程序的一次执行。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"d0861b72-fc95-409c-beed-6ba5ed42c1b7","page_size":[595,841],"block_position":"17-2"},{"bbox":[87,142,199,154],"type":"text","angle":0,"index":3,"text":"程序：指令的有序集合。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"9f66a739-4c74-4b77-9e3a-3d21720d9af4","page_size":[595,841],"block_position":"17-3"},{"bbox":[92,180,391,201],"type":"text","angle":0,"index":4,"text":"·Linux:创建进程使用系统调用fork(+execve()","id":"bdb3a91c-2c2b-4964-8999-0e3d28b0c910","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"page_size":[595,841],"block_position":"17-4"},{"bbox":[92,206,260,222],"type":"text","angle":0,"index":5,"text":"·Windows:CreateProcess()","id":"ed455e46-b29f-4c2f-9f96-62b9403c1cc3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"page_size":[595,841],"block_position":"17-5"},{"bbox":[92,235,214,249],"type":"text","angle":0,"index":6,"text":"·父进程 shell","id":"e5a08ea5-d3b2-47d1-b322-2f1911a41df8","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"page_size":[595,841],"block_position":"17-6"},{"bbox":[92,262,215,276],"type":"text","angle":0,"index":7,"text":"·子进程 hello","id":"8a6aa9cc-e493-4d70-926c-5ade9fdf14c1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"page_size":[595,841],"block_position":"17-7"},{"bbox":[86,297,240,311],"type":"text","angle":0,"index":9,"text":"在./hello->shell 中 fork()+execute()","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"dd6614d3-43b2-4869-9234-262f07eb4966","page_size":[595,841],"block_position":"17-8"},{"bbox":[86,312,331,326],"type":"text","angle":0,"index":10,"text":"父进程和子进程具有独立的但是相同的虚拟地址空间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"38df883a-f6ce-40d9-b3d7-155ca9a69c22","page_size":[595,841],"block_position":"17-9"},{"bbox":[87,328,186,341],"type":"text","angle":0,"index":11,"text":"Init——最初的父进程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"aacbcb90-2aa6-4c27-bc2c-23307da5ace7","page_size":[595,841],"block_position":"17-10"},{"bbox":[87,343,143,356],"type":"text","angle":0,"index":12,"text":"树形的关系","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"cd894706-e0a1-4414-900b-4d575699fd3f","page_size":[595,841],"block_position":"17-11"},{"bbox":[87,359,247,372],"type":"text","angle":0,"index":13,"text":"进程运行时有独立的虚拟地址空间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"6cf4ed5b-a124-4888-8164-aa88dd9a9663","page_size":[595,841],"block_position":"17-12"},{"bbox":[88,374,342,567],"index":14,"angle":0,"type":"image","img_path":"/11df7ec02fddceb002b766c44e5344f70bc39ff07fe885f860e2a836bebc5b74.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.426890756302521,"page_idx":17,"id":"fc03237e-d565-4d57-addc-97726c6c4981","page_size":[595,841],"block_position":"17-13"}],[{"bbox":[88,84,170,103],"type":"title","angle":0,"index":0,"text":"# 进程的创建","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":18,"id":"33a63f99-a8af-4a54-9949-40eec589fe93","page_size":[595,841],"block_position":"18-0"},{"bbox":[94,136,174,153],"type":"title","angle":0,"index":1,"text":"# 进程的创建","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":18,"id":"503c95ef-63f3-4d81-befa-ae13515e60c8","page_size":[595,841],"block_position":"18-1"},{"bbox":[332,136,357,153],"type":"title","angle":0,"index":3,"text":"# 九曲","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":18,"id":"50333b30-ec86-426d-a325-759f8c7b87a6","page_size":[595,841],"block_position":"18-2"},{"bbox":[95,166,284,180],"type":"text","angle":0,"index":4,"text":"1.系统初始化（操作系统启动过程中）","id":"8d7f0338-14b2-4673-8871-d1dfdde4ccc6","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"page_size":[595,841],"block_position":"18-3"},{"bbox":[95,191,355,205],"type":"text","angle":0,"index":5,"text":"2.正在运行的程序执行了创建进程的系统调用(fork)","id":"a10c349a-2c75-4276-8f8d-590c41803042","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"page_size":[595,841],"block_position":"18-4"},{"bbox":[95,216,233,229],"type":"text","angle":0,"index":6,"text":"3.用户请求创建一个新进程","id":"a3f42d35-8595-4568-a178-c62de85fbafe","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"page_size":[595,841],"block_position":"18-5"},{"bbox":[96,240,235,253],"type":"text","angle":0,"index":7,"text":"4.一个批处理作业的初始化","id":"ebdf7d9d-108a-4054-991d-066b58a52a2f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"page_size":[595,841],"block_position":"18-6"},{"bbox":[87,264,153,277],"type":"title","angle":0,"index":9,"text":"# 程序是静态的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":18,"id":"0847f359-792b-40b8-8edb-90bff5426073","page_size":[595,841],"block_position":"18-7"},{"bbox":[87,280,216,292],"type":"text","angle":0,"index":10,"text":"但是一个程序对应一个进程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"862d19ac-6ebe-44f4-a639-14738d3deb27","page_size":[595,841],"block_position":"18-8"},{"bbox":[86,295,504,323],"type":"text","angle":0,"index":11,"text":"进程是具有一定独立功能的程序关于讴歌数据集合的一次运行过程，是系统进行资源分配和调度的一个独立单位。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"abc6cc90-44e2-48c6-b527-0cac0b63b06b","page_size":[595,841],"block_position":"18-9"},{"bbox":[87,327,142,339],"type":"text","angle":0,"index":12,"text":"进程的特征","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"0297a6b9-1b18-458b-b65f-de08cb554b80","page_size":[595,841],"block_position":"18-10"},{"bbox":[87,343,132,355],"type":"text","angle":0,"index":13,"text":"结构特征","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"df779a66-de04-42ec-a0b7-7cf7133186a1","page_size":[595,841],"block_position":"18-11"},{"bbox":[87,359,121,370],"type":"text","angle":0,"index":14,"text":"动态性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"659a90a3-7c2e-4ef2-8e88-d8424da8849c","page_size":[595,841],"block_position":"18-12"},{"bbox":[88,374,121,386],"type":"text","angle":0,"index":15,"text":"并发性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"421ff2e4-31e3-422c-903f-fd1239cd57dd","page_size":[595,841],"block_position":"18-13"},{"bbox":[88,390,121,401],"type":"text","angle":0,"index":16,"text":"独立性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"8661da43-e58d-457f-93e3-77e868a8ad9e","page_size":[595,841],"block_position":"18-14"},{"bbox":[88,405,121,417],"type":"text","angle":0,"index":17,"text":"异步性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"607ff318-d634-42ce-b7c2-d3e08f8f97fd","page_size":[595,841],"block_position":"18-15"},{"bbox":[88,420,121,433],"type":"text","angle":0,"index":18,"text":"结构性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"d1437074-4384-4cdd-8b9f-55f49a79b3f4","page_size":[595,841],"block_position":"18-16"},{"bbox":[86,451,311,465],"type":"text","angle":0,"index":19,"text":"程序的并发执行：多个程序共享资源，并发运行","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"45353a98-4758-4ff2-9ac4-0f0667927fad","page_size":[595,841],"block_position":"18-17"},{"bbox":[87,467,509,496],"type":"text","angle":0,"index":20,"text":"1、间断性。并发程序并不是一气呵成的，中间总会因此彼此间的各种制约关系出现暂停，因为系统只有一个 CPU","id":"f542e9b9-8449-46ec-bf08-d372240e0134","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"page_size":[595,841],"block_position":"18-18"},{"bbox":[87,498,444,511],"type":"text","angle":0,"index":21,"text":"2、 失去封闭性而导致程序运行结果不可再现性，即对没有对资源的互斥共享","id":"08b20775-3ff1-4f42-bc6e-8d41ff891238","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"page_size":[595,841],"block_position":"18-19"},{"bbox":[87,513,286,526],"type":"text","angle":0,"index":22,"text":"3、静态程序结构不能支持并发运行的实现","id":"362189ef-5bca-4360-af80-a3634ed66e39","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"page_size":[595,841],"block_position":"18-20"},{"bbox":[88,529,132,542],"type":"text","angle":0,"index":24,"text":"进程控制","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"8d6907a7-0986-4145-b977-0beab3a2dd4c","page_size":[595,841],"block_position":"18-21"},{"bbox":[87,545,300,557],"type":"text","angle":0,"index":25,"text":"分配内存资源、回收内存资源、控制状态转换","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"4ddbbd60-9a34-451d-ac89-38780f5ff009","page_size":[595,841],"block_position":"18-22"},{"bbox":[88,560,132,573],"type":"text","angle":0,"index":26,"text":"进程互斥","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"4ed65df4-40ab-4ab8-bb9a-0aea661645d0","page_size":[595,841],"block_position":"18-23"},{"bbox":[87,576,446,589],"type":"text","angle":0,"index":27,"text":"互斥方式：多个进程载访问某些共享资源（临界资源）应采用互斥的方式访问","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"60757fb5-c79f-4203-b5da-0af3b159debd","page_size":[595,841],"block_position":"18-24"},{"bbox":[87,592,384,604],"type":"text","angle":0,"index":28,"text":"同步方式：多个进程相互合作完成一些共同任务，前驱满足后继","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"9a282920-efbb-4840-b258-0025649f1d50","page_size":[595,841],"block_position":"18-25"},{"bbox":[87,608,237,619],"type":"text","angle":0,"index":29,"text":"进程通信近九成之间的信息交换","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"9cecfcd8-4db0-479a-9808-ab95a17421f3","page_size":[595,841],"block_position":"18-26"},{"bbox":[88,623,111,635],"type":"text","angle":0,"index":30,"text":"调度","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"ee634b94-7802-4b83-ba31-b2e6867b5cb2","page_size":[595,841],"block_position":"18-27"},{"bbox":[87,638,248,650],"type":"text","angle":0,"index":31,"text":"对资源或人物进行合理分配和管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"450525ce-8316-42ff-aeaf-324f809277d0","page_size":[595,841],"block_position":"18-28"},{"bbox":[86,654,504,682],"type":"text","angle":0,"index":32,"text":"能够后背队列中按照一定的算法选择若干个作业调入内存，为他们创建进程，分配必要资源，插入就绪队列","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"7b7e4cac-f2c2-46ad-8131-eb17f64031e3","page_size":[595,841],"block_position":"18-29"},{"bbox":[87,700,185,714],"type":"title","angle":0,"index":33,"text":"# 4. 进程与程序的区别","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":18,"id":"dae2f300-e9f2-43f9-a67f-e01050c08a86","page_size":[595,841],"block_position":"18-30"},{"bbox":[87,716,411,729],"type":"text","angle":0,"index":34,"text":"(1)从定义上看，程序是一组指令的有序集合；进程是程序的运行过程；","id":"a5b4be7a-d7b9-4137-8ac4-a0c1960814e4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"page_size":[595,841],"block_position":"18-31"},{"bbox":[88,732,367,745],"type":"text","angle":0,"index":35,"text":"(2)从结构上看，进程不仅包含程序段，还包含数据段和 PCB；","id":"bba9f376-1572-47aa-aad2-477c30acf76f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"page_size":[595,841],"block_position":"18-32"},{"bbox":[88,747,253,761],"type":"text","angle":0,"index":36,"text":"(3)进程是动态性，而程序是静态的；","id":"8109a65b-f7ff-4996-89fb-c8b8da379191","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"page_size":[595,841],"block_position":"18-33"}],[{"bbox":[87,79,365,92],"type":"text","angle":0,"index":0,"text":"(4)进程可独立地、并发地执行，程序则不能独立、并发执行","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"385ec684-dc1f-4022-9b01-4d49c41c3d32","page_size":[595,841],"block_position":"19-0"},{"bbox":[87,95,206,107],"type":"title","angle":0,"index":1,"text":"# 5. 进程与程序的对应关系","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":19,"id":"1b4bf020-9fff-4dfb-ba35-ead8e2429a55","page_size":[595,841],"block_position":"19-1"},{"bbox":[87,110,269,122],"type":"text","angle":0,"index":2,"text":"‐ 在某个时刻一个进程对应于一个程序；","id":"51df4f51-bfa7-4db4-b5a8-e289623cb599","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"page_size":[595,841],"block_position":"19-2"},{"bbox":[87,126,348,138],"type":"text","angle":0,"index":3,"text":"‐ 在整个生命周期中，进程可执行多个程序；( fork+exec )","id":"07c95022-02e5-4f23-890c-d72182d81669","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"page_size":[595,841],"block_position":"19-3"},{"bbox":[87,142,268,154],"type":"text","angle":0,"index":4,"text":"‐ 一个程序多次执行则将对应多个进程；","id":"f0967213-25d2-4921-b050-5455e08f22ec","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"page_size":[595,841],"block_position":"19-4"},{"bbox":[87,174,226,193],"type":"title","angle":0,"index":6,"text":"# 进程控制块/进程表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":19,"id":"10f5cb0c-8c20-41c7-8abc-0330c0ee01bb","page_size":[595,841],"block_position":"19-5"},{"bbox":[87,231,145,243],"type":"text","angle":0,"index":7,"text":"PCB（struct）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"34f226d0-1e95-4a2a-8877-16bb1341e89e","page_size":[595,841],"block_position":"19-6"},{"bbox":[87,262,153,275],"type":"text","angle":0,"index":8,"text":"进程描述信息","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"5342a7e2-9b03-492c-a82e-d7cec10c55c4","page_size":[595,841],"block_position":"19-7"},{"bbox":[87,278,184,290],"type":"text","angle":0,"index":9,"text":"进程控制和管理信息","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"f7563e32-e131-40fb-b048-bd5c9e00d6cc","page_size":[595,841],"block_position":"19-8"},{"bbox":[87,293,153,306],"type":"text","angle":0,"index":10,"text":"资源分配清单","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"92820099-c2ae-4d74-beaf-be1b3a4f162d","page_size":[595,841],"block_position":"19-9"},{"bbox":[87,309,163,322],"type":"text","angle":0,"index":11,"text":"处理机相关信息","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"13533c4a-cce8-431d-afe3-4158eeac523c","page_size":[595,841],"block_position":"19-10"},{"bbox":[90,323,285,348],"type":"title","angle":0,"index":12,"text":"# 进程控制块/进程表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":19,"id":"c5fbe628-a44f-475c-97bb-14e8c270de2c","page_size":[595,841],"block_position":"19-11"},{"bbox":[436,320,515,348],"type":"title","angle":0,"index":13,"text":"# 九曲阑干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":19,"id":"d0e628bc-33f0-4c2e-9e93-1f2f8ab4a554","page_size":[595,841],"block_position":"19-12"},{"bbox":[127,364,509,572],"index":14,"angle":0,"type":"table_body","img_path":"/","id":"20237f07-e61e-4a26-9d99-95b9d91e4db3","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>进程管理\n寄存器\n程序计数器\n程序状态字\n堆栈指针\n进程状态\n优先级\n调度参数\n进程ID\n父进程\n进程组\n信号\n进程开始时间\n使用的CPU时间\n子进程的CPU时间\n下次报警时间</td><td>存储管理\n正文段指针\n数据段指针\n堆栈段指针</td><td>文件管理\n根目录\n工作目录\n文件描述符\n用户ID\n组ID</td><td>PCB\nStruct</td></tr></table>","page_idx":19,"page_size":[595,841],"block_position":"19-13"},{"bbox":[87,573,230,586],"type":"text","angle":0,"index":15,"text":"进程映像是指进程实体的组成。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"66cb330c-d10e-4c32-b53f-6e36dc2eac9d","page_size":[595,841],"block_position":"19-14"},{"bbox":[87,589,239,602],"type":"text","angle":0,"index":16,"text":"程序（段）正文段——代码段CS","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"51dead55-adf3-429e-8c02-b6da965bb02c","page_size":[595,841],"block_position":"19-15"},{"bbox":[87,605,166,617],"type":"text","angle":0,"index":17,"text":"数据集数据段DS","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"d9050f01-d2c9-4f83-a7c2-edb0efed752f","page_size":[595,841],"block_position":"19-16"},{"bbox":[94,620,196,633],"type":"text","angle":0,"index":18,"text":"（有的包含栈堆栈段SP","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"30c6cdc1-9206-4c5f-9622-a8ef7595183f","page_size":[595,841],"block_position":"19-17"},{"bbox":[87,636,94,648],"type":"text","angle":0,"index":19,"text":"）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"099f3d8a-9680-4749-b6af-9a8d50adc9e5","page_size":[595,841],"block_position":"19-18"},{"bbox":[87,652,171,664],"type":"text","angle":0,"index":20,"text":"PCB进程描述信息","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"cfbdbf93-4624-4d0e-a461-4bb974c23461","page_size":[595,841],"block_position":"19-19"},{"bbox":[87,667,331,680],"type":"text","angle":0,"index":21,"text":"进程是动态的，进程是进程实体（进程映像）的组成","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"789d8719-c8b6-4974-927b-49c65234cbbb","page_size":[595,841],"block_position":"19-20"}],[{"bbox":[88,75,554,295],"index":0,"angle":0,"type":"image","img_path":"/3f277a24134a1fff284952aea3bf5e3b9b9e2e23e516558143d83af7346a6e9b.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7831932773109244,"page_idx":20,"id":"dbc68729-8424-4908-b30e-1c547191e1a4","page_size":[595,841],"block_position":"20-0"},{"bbox":[88,312,132,325],"type":"text","angle":0,"index":1,"text":"进程状态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"7a5fa710-3fc7-4dae-a77f-54e9f0060652","page_size":[595,841],"block_position":"20-1"},{"bbox":[87,343,311,356],"type":"text","angle":0,"index":2,"text":"进程被创建后，进入就绪队列，等待被调度执行","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"ebdca37d-87b9-4437-bc3e-98e37bf308d3","page_size":[595,841],"block_position":"20-2"},{"bbox":[86,375,174,387],"type":"title","angle":0,"index":3,"text":"# 8. 内核态与用户态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":20,"id":"0ecd6639-4bba-45f7-b6f8-d4eba03d14f7","page_size":[595,841],"block_position":"20-3"},{"bbox":[86,391,251,403],"type":"text","angle":0,"index":4,"text":"CPU 指令（特权指令，非特权指令）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"1ddb640f-5c5b-486e-8d5e-b983fd1a052e","page_size":[595,841],"block_position":"20-4"},{"bbox":[86,406,478,434],"type":"text","angle":0,"index":5,"text":"$\\blacktriangle$ 特权指令：关机指令、清主存、启动外设指令、设置系统时钟时间、关中断、修改存储器管理寄存器等","id":"f56d4744-5876-48bf-826b-b779bc5930fc","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"page_size":[595,841],"block_position":"20-5"},{"bbox":[87,437,415,450],"type":"text","angle":0,"index":6,"text":"$\\blacktriangle$ 非特权指令：通用寄存器清0 指令，访问内存指令，算术运算指令等","id":"0e0c962e-ca55-422b-a9f2-6cdc0a5bcc4c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"page_size":[595,841],"block_position":"20-6"},{"bbox":[87,454,163,465],"type":"title","angle":0,"index":8,"text":"# CPU 的执行状态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":20,"id":"86f5f7e8-55dd-4b8f-895e-0b2eb206d13c","page_size":[595,841],"block_position":"20-7"},{"bbox":[86,468,465,497],"type":"text","angle":0,"index":9,"text":"内核态（核心态、系统态、管态）：能访问所有的内存空间和 I/O 端口，能执行特权和非特权指令。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"844a1d8f-3a61-429e-a6cb-b33ea20d3cd3","page_size":[595,841],"block_position":"20-8"},{"bbox":[86,499,420,513],"type":"text","angle":0,"index":10,"text":"用户态（目态）只能访问分配给自己的内存空间，只能执行非特权指令。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"47c4dcd5-a3e5-4dc5-a9a8-b5dafd6d6f1a","page_size":[595,841],"block_position":"20-9"},{"bbox":[86,533,256,552],"type":"title","angle":0,"index":11,"text":"# 进程的三（五）种状态：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":20,"id":"0d060728-55df-4842-9493-3c73e405db69","page_size":[595,841],"block_position":"20-10"},{"bbox":[87,589,111,602],"type":"text","angle":0,"index":12,"text":"运行","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"4f70aab1-1277-4a33-98be-6d2e93d4539d","page_size":[595,841],"block_position":"20-11"},{"bbox":[88,604,111,618],"type":"text","angle":0,"index":13,"text":"就绪","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"d52db08e-586f-4135-a7ee-14c619ac4555","page_size":[595,841],"block_position":"20-12"},{"bbox":[89,620,111,632],"type":"text","angle":0,"index":14,"text":"阻塞","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"bdc44a71-950b-49a6-bf5a-725d8bf6901d","page_size":[595,841],"block_position":"20-13"},{"bbox":[88,635,185,649],"type":"text","angle":0,"index":15,"text":"创建状态和终止状态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"576d8ca5-4465-41fb-9920-6333fb1fff2f","page_size":[595,841],"block_position":"20-14"}],[{"bbox":[315,75,365,92],"type":"header","angle":0,"index":-99998,"text":"九曲阑干","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":21,"is_discarded":true,"id":"893d5e1f-c3ce-4497-a4f4-9bff8a982692","page_size":[595,841],"block_position":"21-0"},{"bbox":[103,76,160,91],"type":"title","angle":0,"index":0,"text":"# 进程状态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":21,"id":"a59d2528-d17d-475d-b31e-6665807d724b","page_size":[595,841],"block_position":"21-1"},{"bbox":[102,100,209,111],"type":"text","angle":0,"index":2,"text":"进程被创建后，进入就绪队列","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"ce05453e-344d-4fe1-bad0-2e15472f8dd5","page_size":[595,841],"block_position":"21-2"},{"bbox":[104,114,160,124],"type":"text","angle":0,"index":3,"text":"等待被调度执行","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"5e32a032-6059-49a7-b42b-15916e323781","page_size":[595,841],"block_position":"21-3"},{"bbox":[106,153,131,163],"type":"text","angle":0,"index":5,"text":"","id":"4b6ec4fb-2cd3-4269-adfc-76d05c38b355","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"page_size":[595,841],"block_position":"21-4"},{"bbox":[107,169,131,179],"type":"text","angle":0,"index":6,"text":"","id":"59c61c67-22ac-4f66-8dc9-4c0fba545375","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"page_size":[595,841],"block_position":"21-5"},{"bbox":[107,185,131,195],"type":"text","angle":0,"index":7,"text":"·阻塞","id":"c68e5b44-fb34-44cc-91c9-a2036eb84791","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"page_size":[595,841],"block_position":"21-6"},{"bbox":[235,104,343,199],"index":9,"angle":0,"type":"image","img_path":"/651bc6b37b1a89309442cffe1a9dfd057d2304036fc3f7582a89eade6c7f69fa.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":21,"id":"427c40ab-eaa5-4891-8c6e-c28d63143e8f","page_size":[595,841],"block_position":"21-7"},{"bbox":[108,287,357,411],"index":11,"angle":0,"type":"image","img_path":"/8f8f6b1a0546fe3bcc56c8a2213aec037a5222b383b5575aee22751401616032.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4184873949579832,"page_idx":21,"id":"da4fecc8-39a8-4eb9-9c66-3df6c629c86b","page_size":[595,841],"block_position":"21-8"},{"bbox":[101,433,198,443],"type":"title","angle":0,"index":12,"text":"# 7．单CPU中N个进程的情况","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":21,"id":"9e205d57-447d-4116-8269-f40ff94a1dad","page_size":[595,841],"block_position":"21-9"},{"bbox":[102,444,342,538],"index":13,"angle":0,"type":"image","img_path":"/1b78a15a1499de4d104e751077664a772cc7e9547cf7e88e31e42211ae37a77b.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.40336134453781514,"page_idx":21,"id":"6e1f24d2-38b1-4764-9408-2ddc76541ccb","page_size":[595,841],"block_position":"21-10"},{"bbox":[102,538,207,549],"type":"text","angle":0,"index":14,"text":"具有挂起状态的进程状态转换","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"4966275a-eedf-4e98-ad69-aa65a5620a75","page_size":[595,841],"block_position":"21-11"},{"bbox":[102,549,294,682],"index":15,"angle":0,"type":"image","img_path":"/fabd57b4939f01b6eaf4906027767a9f33e5719a444ac61072ca412e94a54755.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3226890756302521,"page_idx":21,"id":"565e7893-0319-4d31-9f40-d769949ebf36","page_size":[595,841],"block_position":"21-12"},{"bbox":[101,705,181,719],"type":"title","angle":0,"index":16,"text":"# 跟踪进程状态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":21,"id":"604147f4-b8f0-4366-b71a-2afadfe3af9d","page_size":[595,841],"block_position":"21-13"},{"bbox":[351,702,395,714],"type":"title","angle":0,"index":17,"text":"# 进程终止","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":21,"id":"c7ccae05-0e65-4826-b6d9-b601eb6be94e","page_size":[595,841],"block_position":"21-14"},{"bbox":[102,728,337,838],"index":18,"angle":0,"type":"table_body","img_path":"/","id":"3143de22-2357-4170-a3ab-7e219daf55e3","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>时间</td><td>Process0</td><td>Process1</td><td>注</td></tr><tr><td>1</td><td>运行</td><td>就绪</td><td></td></tr><tr><td>2</td><td>运行</td><td>就绪</td><td></td></tr><tr><td>3</td><td>运行</td><td>就绪</td><td>Process0发起I/O</td></tr><tr><td>4</td><td>阻塞</td><td>运行</td><td>Process0被阻塞</td></tr><tr><td>5</td><td>阻塞</td><td>运行</td><td>所以Process1运行</td></tr><tr><td>6</td><td>阻塞</td><td>运行</td><td></td></tr><tr><td>7</td><td>就绪</td><td>运行</td><td>I/O完成</td></tr><tr><td>8</td><td>就绪</td><td>运行</td><td>Process1现在完成</td></tr><tr><td>9</td><td>运行</td><td>-</td><td></td></tr><tr><td>10</td><td>运行</td><td>-</td><td>Process0现在完成</td></tr></table>","page_idx":21,"page_size":[595,841],"block_position":"21-15"}],[{"bbox":[87,200,127,211],"type":"title","angle":0,"index":0,"text":"# 进程终止","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":22,"id":"c21f93fc-2f2d-44d1-b1a5-7540b789de82","page_size":[595,841],"block_position":"22-0"},{"bbox":[88,215,157,225],"type":"text","angle":0,"index":1,"text":"","id":"a0fdd210-fb61-48e9-95e4-0a7eafb30f41","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"page_size":[595,841],"block_position":"22-1"},{"bbox":[88,230,146,239],"type":"text","angle":0,"index":2,"text":"","id":"d78c55ec-4ca2-4268-85a5-28d09ffac9e3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"page_size":[595,841],"block_position":"22-2"},{"bbox":[94,240,146,248],"type":"text","angle":0,"index":3,"text":"例如：打开文件失","id":"383ad889-59f7-49e5-8b41-5bc08a2570c7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"page_size":[595,841],"block_position":"22-3"},{"bbox":[89,251,148,260],"type":"text","angle":0,"index":4,"text":"","id":"e06bc665-7696-4ff0-9fc3-1a911eed6d18","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"page_size":[595,841],"block_position":"22-4"},{"bbox":[94,261,171,269],"type":"text","angle":0,"index":5,"text":"除数为零，引用不存在的内存等","id":"ac3dc18f-68fd-4132-880a-aee24e45e9ec","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"page_size":[595,841],"block_position":"22-5"},{"bbox":[89,275,166,282],"type":"text","angle":0,"index":6,"text":"","id":"bea437c7-ce88-46a7-b74c-5fa63a1239d9","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"page_size":[595,841],"block_position":"22-6"},{"bbox":[94,285,173,293],"type":"text","angle":0,"index":7,"text":"执行系统调用kiII杀死其他进程","id":"1201f78e-3ea0-47f9-884f-4ceb84ac4ed4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"page_size":[595,841],"block_position":"22-7"},{"bbox":[88,312,323,326],"type":"text","angle":0,"index":9,"text":"单 CPU，所以一次只能有一个进程运行（交给 CPU）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"532af0ee-930a-4a3b-89b1-ae742211d06f","page_size":[595,841],"block_position":"22-8"},{"bbox":[108,367,309,388],"type":"text","angle":0,"index":10,"text":"","id":"5a71147b-5735-4c63-b2d7-511bffbf023b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"page_size":[595,841],"block_position":"22-9"},{"bbox":[108,412,309,433],"type":"text","angle":0,"index":11,"text":"","id":"16fe980d-6b03-43e9-8f3f-fa844502455c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"page_size":[595,841],"block_position":"22-10"},{"bbox":[352,437,506,450],"type":"text","angle":0,"index":13,"text":"但是就绪队列还是可以有多个进","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"63b21262-fe30-4cae-9503-54733b38d833","page_size":[595,841],"block_position":"22-11"},{"bbox":[118,451,343,505],"index":14,"angle":0,"type":"image","img_path":"/659cfe3993816a0e3f9ec5c5ab4f117e78ce566b3e0299509a3fb97dcac3e3fe.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.37815126050420167,"page_idx":22,"id":"f297aeab-c599-49d0-9f13-4201d745330c","page_size":[595,841],"block_position":"22-12"},{"bbox":[121,507,301,513],"type":"text","angle":0,"index":15,"text":"Eg：假设PCB中的变量state表示进程当前所处状态，1表示就绪态，2表示阻塞态..","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"fe4a081a-3746-44c3-ae38-ae2be56f580a","page_size":[595,841],"block_position":"22-13"},{"bbox":[118,515,291,564],"index":16,"angle":0,"type":"image","img_path":"/2a999be6a5cf15a590b2e419e7e34bd5c45f885ae6f9e939a3eba31d489a76c9.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2907563025210084,"page_idx":22,"id":"43d14348-ef4f-49b0-94eb-384e23a417f8","page_size":[595,841],"block_position":"22-14"},{"bbox":[116,565,330,571],"type":"text","angle":0,"index":17,"text":"假设此时进程2等待的事件发生，则操作系统中，负责进程控制的内核程序至少需要做这样两件事：","id":"2871ca85-819c-491c-bc7d-387e0f04acfe","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"page_size":[595,841],"block_position":"22-15"},{"bbox":[117,572,168,578],"type":"text","angle":0,"index":18,"text":"①将PCB2的state设为1","id":"d5e95daa-4b9b-4463-b96a-34c75afeb0d0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"page_size":[595,841],"block_position":"22-16"},{"bbox":[117,579,193,584],"type":"text","angle":0,"index":19,"text":"②将PCB2从阻塞队列放到就绪队列","id":"b359257b-251a-45f2-90f2-eebfaa806357","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"page_size":[595,841],"block_position":"22-17"},{"bbox":[86,608,332,636],"type":"text","angle":0,"index":22,"text":"周转时间：一个是性能指标，另外一个是指标时公平性能和公平中往往是矛盾的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"38114d88-33a4-4a1f-9401-6d52cd364b9a","page_size":[595,841],"block_position":"22-18"},{"bbox":[88,640,200,652],"type":"text","angle":0,"index":23,"text":"如何实现原语的原子性？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"f89af4b6-c876-485f-afd3-ffbc48aa1452","page_size":[595,841],"block_position":"22-19"}],[{"bbox":[88,75,128,88],"index":0,"angle":0,"type":"image","img_path":"/0e6277d46f3ca6e6d4de052cd8a45b4def34f3966da291f77acfbce75f427dd1.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":23,"id":"e3aff4d0-7152-4356-8dc9-e6818d82dc2f","page_size":[595,841],"block_position":"23-0"},{"bbox":[99,100,255,113],"type":"text","angle":0,"index":2,"text":"原语的执行具有原子性，即执行过程只能一气呵成，期间不允许被中断。可以用“关中断指令”和“开中断指令”这两个特权指令实现原子性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"c377da2b-1f41-44e9-9c0c-0197648aeca4","page_size":[595,841],"block_position":"23-1"},{"bbox":[108,123,216,195],"index":4,"angle":0,"type":"image","img_path":"/1f7ddb9dcae01810b1a00eecf6bad483af571af2df0131e683ade11ebfc12f7f.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":23,"id":"470d2a06-861f-4ec6-8673-a411536d707f","page_size":[595,841],"block_position":"23-2"},{"bbox":[229,131,320,151],"type":"text","angle":0,"index":5,"text":"CPU执行了关中断指令之后，就不再例行检查中断信号，直到执行开中断指令之后才会恢复检查。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"ae2ba6d8-4deb-4c63-b39f-a7f445edec69","page_size":[595,841],"block_position":"23-3"},{"bbox":[229,154,320,174],"type":"text","angle":0,"index":6,"text":"这样，关中断、开中断之间的这些指令序列就是不可被中断的，这就实现了“原子性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"9f125773-840f-4cd8-93c1-969a1d113eeb","page_size":[595,841],"block_position":"23-4"},{"bbox":[86,219,444,232],"type":"text","angle":0,"index":7,"text":"OS 的内核运行于核心态，应用程序则运行于用户态。（进程控制的大量原语）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"6bfce365-b2a7-42f0-937c-59914f14e7a3","page_size":[595,841],"block_position":"23-5"},{"bbox":[87,253,154,271],"type":"title","angle":0,"index":8,"text":"# 进程通信","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":23,"id":"f1886d27-55e4-4e20-a8da-2bd88dee9686","page_size":[595,841],"block_position":"23-6"},{"bbox":[87,308,202,322],"type":"title","angle":0,"index":9,"text":"# 1、共享存储器系统通信","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":23,"id":"49a3aa4f-d917-4b22-8586-3b6cc0bf486d","page_size":[595,841],"block_position":"23-7"},{"bbox":[86,339,479,353],"type":"text","angle":0,"index":10,"text":"在存储器中划分出一块共享存储区，诸进程通过对共享存储区的读写操作来实现通信","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"a675d1d2-bc36-4474-b48c-ead6d85c5468","page_size":[595,841],"block_position":"23-8"},{"bbox":[87,371,143,386],"type":"text","angle":0,"index":11,"text":"Shm_open()","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"d8d9cac6-853c-4146-ad59-4dc6f9eb4420","page_size":[595,841],"block_position":"23-9"},{"bbox":[87,387,144,400],"type":"text","angle":0,"index":12,"text":"Void * map()","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"d28e4616-d544-40a7-a324-fba30eb36fb6","page_size":[595,841],"block_position":"23-10"},{"bbox":[223,370,393,384],"type":"text","angle":0,"index":13,"text":"通过系统调用，申请一片共享内存区","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"801d07f3-f6b6-4c7d-a1a6-091bd923203a","page_size":[595,841],"block_position":"23-11"},{"bbox":[223,386,499,399],"type":"text","angle":0,"index":14,"text":"通过 mmap 系统调用，将共享内存区映射到自己的地址空间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"b366d59c-44eb-47eb-958f-53c47c51ac60","page_size":[595,841],"block_position":"23-12"},{"bbox":[105,417,444,631],"index":16,"angle":0,"type":"image","img_path":"/fdb9646d4742569587c516f0ede3ba8b28476971f01e63a8fa139a79e0a04d3b.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5697478991596638,"page_idx":23,"id":"14729505-689f-4d49-8f79-60b16172b053","page_size":[595,841],"block_position":"23-13"},{"bbox":[86,666,153,680],"type":"text","angle":0,"index":20,"text":"同步互斥工作","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"a40be02d-a36c-4008-bd66-9f49ee1c751d","page_size":[595,841],"block_position":"23-14"},{"bbox":[88,682,163,696],"type":"text","angle":0,"index":21,"text":"基于数据的共享","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"98e1f2b9-6cf8-4a35-8124-ee6cc120ac6f","page_size":[595,841],"block_position":"23-15"},{"bbox":[88,698,173,711],"type":"text","angle":0,"index":22,"text":"基于存储区的共享","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"d45a5279-ba9d-46a9-aecf-966ead970308","page_size":[595,841],"block_position":"23-16"},{"bbox":[88,714,153,726],"type":"text","angle":0,"index":23,"text":"高级通信方式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"23eeff06-6660-405f-8f90-774675ac93be","page_size":[595,841],"block_position":"23-17"},{"bbox":[87,745,192,757],"type":"title","angle":0,"index":24,"text":"# 2、消息传递系统通信","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":23,"id":"3e7c9ddb-2af6-42c8-833a-e2a9e9e11833","page_size":[595,841],"block_position":"23-18"}],[{"bbox":[88,95,195,107],"type":"text","angle":0,"index":0,"text":"以格式化的信息为单位","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"97b886a1-c1ae-45a2-8c37-a3e3ea3023d0","page_size":[595,841],"block_position":"24-0"},{"bbox":[88,110,154,122],"type":"text","angle":0,"index":1,"text":"直接通信方式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"72e1baab-4543-4f3d-9398-05ae65b914de","page_size":[595,841],"block_position":"24-1"},{"bbox":[88,126,232,138],"type":"text","angle":0,"index":2,"text":"由一对通信原语 send(),receive()","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"d05f6e85-b5c7-4f26-b2f4-0f3b82e5914f","page_size":[595,841],"block_position":"24-2"},{"bbox":[88,142,153,153],"type":"text","angle":0,"index":3,"text":"间接通信方式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"6a7a978e-d798-459e-ba3c-8baa34198c8c","page_size":[595,841],"block_position":"24-3"},{"bbox":[88,157,175,169],"type":"text","angle":0,"index":4,"text":"进程 Q 的消息队列","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"d7ece145-44e9-446f-9ed4-08fa205a3867","page_size":[595,841],"block_position":"24-4"},{"bbox":[87,172,354,185],"type":"text","angle":0,"index":5,"text":"如果其他进程要发送给进程Q的消息都在Q的消息队列中","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"e386e437-1d37-4af0-89d7-55d9d81f82ed","page_size":[595,841],"block_position":"24-5"},{"bbox":[88,188,291,201],"type":"text","angle":0,"index":6,"text":"进程 P 建立消息 msg，发送原语,send(Q,msg)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"78033e53-c239-4d57-a378-3deff6c23dee","page_size":[595,841],"block_position":"24-6"},{"bbox":[88,203,216,216],"type":"text","angle":0,"index":7,"text":"被复制到了Q的消息队列中","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"9f9efe53-7411-4114-9c76-c1620cacb916","page_size":[595,841],"block_position":"24-7"},{"bbox":[88,219,218,232],"type":"text","angle":0,"index":8,"text":"接受原语（receive (p,&msg)）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"25b5372a-d37c-4660-9566-25c5a99bcce4","page_size":[595,841],"block_position":"24-8"},{"bbox":[118,241,499,439],"index":9,"angle":0,"type":"image","img_path":"/70923663158f7f516917b74eecdb0207f55655a4f8292cb14a4a1ab91a24a179.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6403361344537815,"page_idx":24,"id":"8c7b77ab-121f-4fa0-81f5-954daa3577f8","page_size":[595,841],"block_position":"24-9"},{"bbox":[86,453,343,466],"type":"text","angle":0,"index":10,"text":"间接通信方式，以“信箱中作为中间实体进行消息传递","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"52a99888-23d4-4563-a4f6-bbe555192558","page_size":[595,841],"block_position":"24-10"},{"bbox":[88,469,220,481],"type":"text","angle":0,"index":11,"text":"Send (A,msg)发送到哪个信箱","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"503bd6f8-81ae-46ce-81d4-13619cfbc5ed","page_size":[595,841],"block_position":"24-11"},{"bbox":[87,515,151,528],"type":"title","angle":0,"index":12,"text":"# 3、管道通信","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":24,"id":"29229de9-4f95-45b9-bdf0-2629c8c8f444","page_size":[595,841],"block_position":"24-12"},{"bbox":[86,546,504,574],"type":"text","angle":0,"index":13,"text":"管道式一个特殊的共享问题件，又名为pipe文件。就是在内存中开辟一个大小固定的内存缓冲区","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"93ccb8c3-202f-4166-b616-a93e195b7026","page_size":[595,841],"block_position":"24-13"},{"bbox":[88,577,142,590],"type":"text","angle":0,"index":14,"text":"先进先出的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"46029701-164f-4f84-a86b-781c9b87bb3b","page_size":[595,841],"block_position":"24-14"},{"bbox":[88,593,142,605],"type":"text","angle":0,"index":15,"text":"单向通信的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"38e7b31c-b8f3-4542-b261-7c7b5d39bdef","page_size":[595,841],"block_position":"24-15"},{"bbox":[88,608,226,621],"type":"text","angle":0,"index":16,"text":"管道文件被读取的部分会消失","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"d9ade06e-2d49-40e7-ab9a-948b580e71d0","page_size":[595,841],"block_position":"24-16"},{"bbox":[88,624,132,637],"type":"text","angle":0,"index":17,"text":"无名管道","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"5c13ab71-4562-4f98-94d8-0f3a533c728d","page_size":[595,841],"block_position":"24-17"},{"bbox":[88,640,132,652],"type":"text","angle":0,"index":18,"text":"有名管道","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"8052999d-a28c-42ef-a3e2-086735253bd2","page_size":[595,841],"block_position":"24-18"},{"bbox":[87,671,171,684],"type":"title","angle":0,"index":19,"text":"# 4、客户服务通信","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":24,"id":"3c6633dd-13f7-4904-abc5-30eca14f92af","page_size":[595,841],"block_position":"24-19"},{"bbox":[88,687,195,699],"type":"text","angle":0,"index":20,"text":"消息缓冲队列通信机制","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"f5a839d9-eea1-4db2-b5cf-48888aaab487","page_size":[595,841],"block_position":"24-20"}],[{"bbox":[88,84,154,103],"type":"title","angle":0,"index":0,"text":"# 进程控制","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":25,"id":"9c800c95-5065-4740-bbe7-2d09b79f74fa","page_size":[595,841],"block_position":"25-0"},{"bbox":[88,175,146,192],"type":"title","angle":0,"index":1,"text":"# 进程创建","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":25,"id":"2d64e599-e327-4d70-8cc7-2a68a177e923","page_size":[595,841],"block_position":"25-1"},{"bbox":[88,226,132,240],"type":"text","angle":0,"index":2,"text":"作业调度","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"ae24d0be-3c36-440c-b058-77b6bcd95461","page_size":[595,841],"block_position":"25-2"},{"bbox":[88,242,132,255],"type":"text","angle":0,"index":3,"text":"用户登录","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"cbb5c3e9-05b1-4c6a-a92f-da8a1f67c37e","page_size":[595,841],"block_position":"25-3"},{"bbox":[88,257,152,270],"type":"text","angle":0,"index":4,"text":"提供特定服务","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"36844103-c5c3-48cf-b848-26f555c68e36","page_size":[595,841],"block_position":"25-4"},{"bbox":[88,273,132,286],"type":"text","angle":0,"index":5,"text":"应用请求","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"49fd3032-da0d-4dff-bda1-718043cef959","page_size":[595,841],"block_position":"25-5"},{"bbox":[88,304,152,317],"type":"text","angle":0,"index":6,"text":"进程创建原语","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"2fff7252-fe0f-40e8-a84b-be69c0b1867f","page_size":[595,841],"block_position":"25-6"},{"bbox":[88,340,146,357],"type":"title","angle":0,"index":7,"text":"# 进程撤销","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":25,"id":"db2adfd7-65d5-480c-954d-7fd315253f74","page_size":[595,841],"block_position":"25-7"},{"bbox":[88,396,146,413],"type":"title","angle":0,"index":8,"text":"# 进程切换","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":25,"id":"d4d0be31-288a-4c76-9dda-1e3dc3db2356","page_size":[595,841],"block_position":"25-8"},{"bbox":[102,454,147,468],"type":"title","angle":0,"index":9,"text":"# 进程切换","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":25,"id":"f888d29d-278f-432d-a6e0-da56ba9de12f","page_size":[595,841],"block_position":"25-9"},{"bbox":[265,454,303,467],"type":"title","angle":0,"index":11,"text":"# 九曲闲干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":25,"id":"ef09d5e5-15e1-44f0-8f39-78a154910d79","page_size":[595,841],"block_position":"25-10"},{"bbox":[102,472,199,486],"type":"text","angle":0,"index":12,"text":"进程切换，又叫上下文切换","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"273d8446-dccf-42c7-87f5-c0f34154e0b0","page_size":[595,841],"block_position":"25-11"},{"bbox":[234,470,257,484],"type":"text","angle":0,"index":13,"text":"0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"1d51c9cb-57a1-4ba2-927f-217c9c1f3243","page_size":[595,841],"block_position":"25-12"},{"bbox":[102,492,190,505],"type":"text","angle":0,"index":14,"text":"1.保存当前进程的上下文","id":"d16f0e79-3ffb-43d9-8eb9-ac7c4ba28226","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"page_size":[595,841],"block_position":"25-13"},{"bbox":[102,507,265,518],"type":"text","angle":0,"index":15,"text":"2.恢复某个之前被抢占的进程的被保存的上下文","id":"78cd4b9e-3793-4114-8ec8-7b11eb9a092f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"page_size":[595,841],"block_position":"25-14"},{"bbox":[103,523,220,533],"type":"text","angle":0,"index":16,"text":"3.将控制传递给这个新恢复的进程","id":"46156554-7b24-42e9-b4b3-30cb7746ea02","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"page_size":[595,841],"block_position":"25-15"}],[{"bbox":[88,85,188,101],"type":"title","angle":0,"index":0,"text":"# 进程阻塞与唤醒","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":26,"id":"73a3d744-5037-45a0-b4e3-b978ddd512b7","page_size":[595,841],"block_position":"26-0"},{"bbox":[88,141,154,159],"type":"title","angle":0,"index":1,"text":"# 进程调度","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":26,"id":"6a71a847-c769-463e-95a2-88af82996551","page_size":[595,841],"block_position":"26-1"},{"bbox":[88,204,160,221],"type":"title","angle":0,"index":2,"text":"# 调度的层次","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":26,"id":"e471f3b6-6202-4ffe-907d-c59fad57bd2f","page_size":[595,841],"block_position":"26-2"},{"bbox":[86,254,505,299],"type":"text","angle":0,"index":3,"text":"高级：负责将进程调入内存，分配资源。从外存的后被队列中选择若干个作业调入内存，创建进程，并将新创建的进程插入就绪队列，准备执行；此外，当作业执行完毕后回收进程。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":26,"id":"475234b3-bbf3-4350-a973-be31868076df","page_size":[595,841],"block_position":"26-3"},{"bbox":[87,301,410,315],"type":"text","angle":0,"index":4,"text":"中级：提高内存利用率和 CPU 吞吐量。将进程换出到外存，挂起状态。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":26,"id":"abd85308-26a3-4e6f-914c-87eca20f0197","page_size":[595,841],"block_position":"26-4"},{"bbox":[87,317,208,330],"type":"text","angle":0,"index":5,"text":"低级：负责分配 CPU 资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":26,"id":"d5f43df0-a96c-47e2-ab59-cd0347d37f06","page_size":[595,841],"block_position":"26-5"},{"bbox":[87,333,216,345],"type":"text","angle":0,"index":6,"text":"调度频率：低级>中级 $>$ 高级","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":26,"id":"c8118df3-76b8-48fb-bb15-33b3bf608b0e","page_size":[595,841],"block_position":"26-6"},{"bbox":[88,346,415,445],"index":7,"angle":0,"type":"image","img_path":"/acbe7e281d4861ed3d3a2e7363c9d5d493361056a7096ce97f52a3565e1da77f.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5495798319327732,"page_idx":26,"id":"acb8fc67-79a8-4360-bd13-3393fe8af10c","page_size":[595,841],"block_position":"26-7"},{"bbox":[87,473,270,486],"type":"text","angle":0,"index":8,"text":"进程调度是操作系统在内核模式中进行","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":26,"id":"98c753c9-3160-478f-97dd-555fb4bcb7dd","page_size":[595,841],"block_position":"26-8"},{"bbox":[87,509,132,525],"type":"title","angle":0,"index":9,"text":"# 忙等待","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":26,"id":"f7394138-5904-4230-9e42-c01aa956939c","page_size":[595,841],"block_position":"26-9"},{"bbox":[86,575,127,587],"type":"text","angle":0,"index":10,"text":"While(1)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":26,"id":"08a58f2d-3ea2-4ee1-837d-889d80e1865d","page_size":[595,841],"block_position":"26-10"},{"bbox":[86,590,408,602],"type":"text","angle":0,"index":11,"text":"用户态一直占用CPU，无法切换到内核模式，就无法进行进程的切换。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":26,"id":"1b9972ae-05a9-4d20-a078-e870741cf4c6","page_size":[595,841],"block_position":"26-11"},{"bbox":[87,606,132,618],"type":"text","angle":0,"index":12,"text":"时钟中断","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":26,"id":"1c837a10-a3fc-42e6-a626-e69e5a7f3f85","page_size":[595,841],"block_position":"26-12"},{"bbox":[86,622,246,634],"type":"text","angle":0,"index":13,"text":"CPU响应中断，处理中断处理程序","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":26,"id":"b01b26e9-54da-44bc-87a6-8ef998cf5ba4","page_size":[595,841],"block_position":"26-13"},{"bbox":[87,637,195,650],"type":"text","angle":0,"index":14,"text":"从用户态切换到内核态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":26,"id":"ec517e3d-b058-41f2-953c-782ab3d2d393","page_size":[595,841],"block_position":"26-14"},{"bbox":[86,653,325,666],"type":"text","angle":0,"index":15,"text":"用户能关中断的话，就可以一直占用，这是不行的。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":26,"id":"5db5fe9d-9b74-42e8-82bf-78b9be211563","page_size":[595,841],"block_position":"26-15"}],[{"bbox":[88,84,175,101],"type":"title","angle":0,"index":0,"text":"# 进程调度方式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":27,"id":"4a9ef0f7-0856-4ca2-a1a5-22291e658d6c","page_size":[595,841],"block_position":"27-0"},{"bbox":[87,136,132,148],"type":"text","angle":0,"index":1,"text":"非抢占式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"4ee4c7e5-b1bb-41b6-b061-91207bb1406d","page_size":[595,841],"block_position":"27-1"},{"bbox":[88,152,123,163],"type":"text","angle":0,"index":2,"text":"抢占式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"a6fc1ca3-5bf5-4e4d-ae79-e1348037b6e4","page_size":[595,841],"block_position":"27-2"},{"bbox":[88,168,173,179],"type":"text","angle":0,"index":3,"text":"内核完全不可抢占","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"08b9144b-035d-4218-85ca-51b7a7cd504f","page_size":[595,841],"block_position":"27-3"},{"bbox":[88,183,152,195],"type":"text","angle":0,"index":4,"text":"内核部分抢占","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"8f6fcdbf-4951-4c79-a393-2f927aac0b5e","page_size":[595,841],"block_position":"27-4"},{"bbox":[88,198,163,211],"type":"text","angle":0,"index":5,"text":"内核完全可抢占","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"a1c6825a-f15c-4f43-afd9-45a013ac9684","page_size":[595,841],"block_position":"27-5"},{"bbox":[88,234,161,250],"type":"title","angle":0,"index":6,"text":"# 考虑的目标","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":27,"id":"58b48eca-1930-4c35-945b-1bcf83f3b5ee","page_size":[595,841],"block_position":"27-6"},{"bbox":[88,285,153,297],"type":"text","angle":0,"index":7,"text":"系统设计目标","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"23882e0b-2daf-4485-a9f3-8a3f1c958b2d","page_size":[595,841],"block_position":"27-7"},{"bbox":[88,301,153,312],"type":"text","angle":0,"index":8,"text":"调度的公平性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"33a16bc5-23a9-4cd1-a80a-bdbfd37cdb06","page_size":[595,841],"block_position":"27-8"},{"bbox":[89,316,163,328],"type":"text","angle":0,"index":9,"text":"资源的均衡利用","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"e9cdfb8a-71e5-4a0a-a1a6-38a5e7204feb","page_size":[595,841],"block_position":"27-9"},{"bbox":[89,332,164,344],"type":"text","angle":0,"index":10,"text":"合理的系统开销","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"1fe04f04-dfad-45cf-aae0-0b037934a5fd","page_size":[595,841],"block_position":"27-10"},{"bbox":[88,367,146,383],"type":"title","angle":0,"index":11,"text":"# 评价指标","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":27,"id":"bbf46186-6542-4fcf-b413-38770cd74ba8","page_size":[595,841],"block_position":"27-11"},{"bbox":[87,433,221,446],"type":"text","angle":0,"index":12,"text":"CPU 利用率 忙碌时间/总时间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"0832e757-6c67-4e74-a88f-2c5b9bd400c2","page_size":[595,841],"block_position":"27-12"},{"bbox":[89,449,121,462],"type":"text","angle":0,"index":13,"text":"甘特图","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"0c12a706-aa30-43ac-a199-d1bdd3d47848","page_size":[595,841],"block_position":"27-13"},{"bbox":[89,465,143,477],"type":"text","angle":0,"index":14,"text":"系统吞吐量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"49b09683-f7c9-4304-b597-1e92532c48f1","page_size":[595,841],"block_position":"27-14"},{"bbox":[87,496,283,509],"type":"text","angle":0,"index":15,"text":"总共完成了多少道作业/总共花了多少时间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"8c6e61f3-c9a9-473d-9cf6-8ff5c596d0ba","page_size":[595,841],"block_position":"27-15"},{"bbox":[88,512,205,524],"type":"text","angle":0,"index":16,"text":"周转时间和带权周转时间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"8d00dd6a-adea-4866-901c-c895b8f3e13f","page_size":[595,841],"block_position":"27-16"},{"bbox":[87,527,416,539],"type":"text","angle":0,"index":17,"text":"周转时间——从作业提交给系统开始，到作业完成为止的这段时间间隔","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"4ae34676-f391-415a-868f-e06442885c32","page_size":[595,841],"block_position":"27-17"},{"bbox":[87,543,504,587],"type":"text","angle":0,"index":18,"text":"它包括四部分：作业在外存后备队列上等待作业调度（进入到内存并创建进程）的时间、进程在就绪队列上等待（调入到CPU）进程调度、进程在CPU上执行的时间，进程等待I/O操作完成的时间。后三项可能在一个作业处理过程中可能发生多次。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"b2db9245-ba4b-4304-b99e-80b12f34e606","page_size":[595,841],"block_position":"27-18"},{"bbox":[87,589,267,602],"type":"text","angle":0,"index":19,"text":"周转时间 $=$ 作业完成时间-作业提交时间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"be38d59a-c4c5-4890-82f6-321feb7b4021","page_size":[595,841],"block_position":"27-19"},{"bbox":[87,605,304,618],"type":"text","angle":0,"index":20,"text":"平均周转时间——各作业周转时间之和/作业数","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"2faf29a2-3411-4185-8b36-ebe2d36117c3","page_size":[595,841],"block_position":"27-20"},{"bbox":[87,620,505,649],"type":"text","angle":0,"index":21,"text":"带权周转时间——作业周转时间/实际运行的时间 $=$ 作业完成时间-作业提交时间/作业实际运行的时间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"b1a2e922-14f8-4501-a6fc-35a05f100d4e","page_size":[595,841],"block_position":"27-21"},{"bbox":[88,652,174,664],"type":"text","angle":0,"index":22,"text":"平均带权周转时间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"52eadcab-06c4-4da3-b5f1-04a2acfdf534","page_size":[595,841],"block_position":"27-22"},{"bbox":[87,667,315,680],"type":"text","angle":0,"index":23,"text":"等待时间——进程/作业处于等待处理机时间之和","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"d243d95c-488d-4e07-8c44-e9ffd24ad4cb","page_size":[595,841],"block_position":"27-23"},{"bbox":[87,682,504,711],"type":"text","angle":0,"index":24,"text":"对于进程来说，等待时间就是指建立后等待被服务的时间之和，在等待 I/O完成的期间其实进程也是在被服务的，所以不计入等待时间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"3b82548d-5971-4d90-b19c-6d4419e7b2b4","page_size":[595,841],"block_position":"27-24"},{"bbox":[87,714,504,743],"type":"text","angle":0,"index":25,"text":"对于作业来说，不仅要考虑建立进程后的等待时间，还要加上作业在外存后备队列中等待的时间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"45684ccf-657c-47be-bb38-ee2bc12c75e0","page_size":[595,841],"block_position":"27-25"},{"bbox":[88,745,132,758],"type":"text","angle":0,"index":26,"text":"响应时间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"812e7cd8-b1f4-40a8-a84a-7ff09519db29","page_size":[595,841],"block_position":"27-26"}],[{"bbox":[88,79,258,92],"type":"header","angle":0,"index":-99999,"text":"用户提交请求到首次相应的时间间隔","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":28,"is_discarded":true,"id":"ec35012e-0e7a-44d5-a4d7-772559863206","page_size":[595,841],"block_position":"28-0"},{"bbox":[101,92,169,108],"type":"header","angle":0,"index":-99998,"text":"响应时间","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":28,"is_discarded":true,"id":"d759430e-7a91-4254-be1a-91b64416e3a7","page_size":[595,841],"block_position":"28-1"},{"bbox":[358,90,415,109],"type":"header","angle":0,"index":-99997,"text":"九曲阑十","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":28,"is_discarded":true,"id":"f592f92c-7e4f-4991-96bc-a9a549b393a4","page_size":[595,841],"block_position":"28-2"},{"bbox":[110,148,255,165],"type":"interline_equation","angle":0,"index":4,"text":"$$\n\\mathrm {T} _ {\\text {响 应 时 间}} = \\mathrm {T} _ {\\text {首 次 运 行}} - \\mathrm {T} _ {\\text {到 达 时 间}}\n$$","color":{"line":"rgba(230, 122, 171, 1)","fill":"rgba(230, 122, 171, 1)"},"page_idx":28,"id":"b36e7066-ef40-41cd-b05f-135421965dd7","page_size":[595,841],"block_position":"28-3"},{"bbox":[286,150,379,164],"type":"interline_equation","angle":0,"index":5,"text":"$$\nT _ {\\text {响 应 时 间}} = T _ {\\text {等 待 时 间}}\n$$","color":{"line":"rgba(230, 122, 171, 1)","fill":"rgba(230, 122, 171, 1)"},"page_idx":28,"id":"4e5cab38-212c-4b22-8a8e-44de83ec5b0a","page_size":[595,841],"block_position":"28-4"},{"bbox":[117,184,271,255],"index":6,"angle":0,"type":"image","img_path":"/2ec455e962d174086eb9faac0d226ef4004594ba35fb515c885508fe653ca012.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.25882352941176473,"page_idx":28,"id":"e765194e-c89b-4b69-9321-aaa29f3436a4","page_size":[595,841],"block_position":"28-5"},{"bbox":[301,185,364,200],"type":"interline_equation","angle":0,"index":7,"text":"$$\n\\mathrm {T} _ {\\text {响 应 时 间} \\mathrm {A}} = 0\n$$","color":{"line":"rgba(230, 122, 171, 1)","fill":"rgba(230, 122, 171, 1)"},"page_idx":28,"id":"b485ae35-ee4b-4a66-a126-c69523c275a5","page_size":[595,841],"block_position":"28-6"},{"bbox":[302,208,364,222],"type":"interline_equation","angle":0,"index":8,"text":"$$\n\\mathrm {T} _ {\\text {响 应 时 间} \\mathrm {B}} = 0\n$$","color":{"line":"rgba(230, 122, 171, 1)","fill":"rgba(230, 122, 171, 1)"},"page_idx":28,"id":"d56bd554-870f-413b-a5fa-869c1586d8ba","page_size":[595,841],"block_position":"28-7"},{"bbox":[302,230,374,243],"type":"interline_equation","angle":0,"index":9,"text":"$$\n\\mathrm {T} _ {\\text {响 应 时 间} \\mathrm {C}} = 1 0 \\mathrm {s}\n$$","color":{"line":"rgba(230, 122, 171, 1)","fill":"rgba(230, 122, 171, 1)"},"page_idx":28,"id":"6413b07c-9c9e-4a5c-9936-d3b3a4240e49","page_size":[595,841],"block_position":"28-8"},{"bbox":[88,266,174,279],"type":"text","angle":0,"index":10,"text":"对截止时间的保证","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"4a9b9309-39ae-4157-8508-dc5db9847a90","page_size":[595,841],"block_position":"28-9"},{"bbox":[88,301,146,318],"type":"title","angle":0,"index":11,"text":"# 调度算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":28,"id":"b637aaaa-362a-4ad5-ade4-8df949a7a83e","page_size":[595,841],"block_position":"28-10"},{"bbox":[87,383,224,396],"type":"text","angle":0,"index":12,"text":"周转时间 $=$ 完成时间-提交时间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"16895a15-6874-4131-925f-2db91de11abd","page_size":[595,841],"block_position":"28-11"},{"bbox":[88,398,265,412],"type":"text","angle":0,"index":13,"text":"带权周转时间 周转时间/要求执行时间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"624326b5-8536-4936-8945-6370ef610ea1","page_size":[595,841],"block_position":"28-12"},{"bbox":[88,435,189,451],"type":"title","angle":0,"index":14,"text":"# 先来先服务FCFS","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":28,"id":"7693b87d-7b11-4869-a300-80f85ebdde48","page_size":[595,841],"block_position":"28-13"},{"bbox":[91,497,303,578],"index":15,"angle":0,"type":"image","img_path":"/f8ab93ea171d8db7f9b0783a43696bb4c9cb2452fecc1e239c9161cf500f0358.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3563025210084034,"page_idx":28,"id":"4a6b8e69-5d3e-400c-8d94-41b3c69de986","page_size":[595,841],"block_position":"28-14"},{"bbox":[88,580,193,592],"type":"text","angle":0,"index":16,"text":"ABC同时到达就绪队列","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"96ea2e05-4c2e-42eb-be4f-d2be548890f5","page_size":[595,841],"block_position":"28-15"},{"bbox":[87,594,384,608],"type":"text","angle":0,"index":17,"text":"缺点：有些任务先到达到时间非常长，系统平均周转时间比较高","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"8b0c85e8-69bd-43fd-8ed4-a96a69f1ea5b","page_size":[595,841],"block_position":"28-16"}],[{"bbox":[87,84,160,101],"type":"title","angle":0,"index":0,"text":"# 短作业优先","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":29,"id":"cf88345b-907a-4eec-bc75-00315c37145b","page_size":[595,841],"block_position":"29-0"},{"bbox":[90,156,258,169],"type":"text","angle":0,"index":2,"text":"先运行最短的任务，然后是次短的任务","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"94050e8c-9266-4e43-8510-31a00e78f95d","page_size":[595,841],"block_position":"29-1"},{"bbox":[90,176,355,188],"type":"text","angle":0,"index":3,"text":"当所有任务同时到达时，最短任务优先是一个最优的调度算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"3b6918f8-31c0-4712-91e8-4f69d9ead612","page_size":[595,841],"block_position":"29-2"},{"bbox":[88,200,254,265],"index":4,"angle":0,"type":"image","img_path":"/e39c4f75d37dd96d70ad0deecfabaebf3d023a867caa5e3cbc7c07b307b131b1.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.27899159663865547,"page_idx":29,"id":"971870a9-f6ad-4d55-8d8a-f085a1902ccb","page_size":[595,841],"block_position":"29-3"},{"bbox":[265,210,339,223],"type":"text","angle":0,"index":5,"text":"平均周转时间：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"664f93c9-2363-468b-8776-de6333629ed6","page_size":[595,841],"block_position":"29-4"},{"bbox":[265,230,399,244],"type":"interline_equation","angle":0,"index":6,"text":"$$\n(1 0 + 2 0 + 1 2 0) / 3 = 5 0\n$$","color":{"line":"rgba(230, 122, 171, 1)","fill":"rgba(230, 122, 171, 1)"},"page_idx":29,"id":"5cd6a576-1d38-4c6d-b610-236f20433ed4","page_size":[595,841],"block_position":"29-5"},{"bbox":[86,291,175,306],"type":"text","angle":0,"index":7,"text":"不会产生饥饿现象","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"c9178f8f-3b3c-4900-8046-a1d65cebc2e0","page_size":[595,841],"block_position":"29-6"},{"bbox":[87,326,139,341],"type":"title","angle":0,"index":8,"text":"# 非抢占式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":29,"id":"e07389ab-cd3e-42ae-b915-ea65b077bdf3","page_size":[595,841],"block_position":"29-7"},{"bbox":[86,359,158,372],"type":"text","angle":0,"index":9,"text":"短作业优先 SJF","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"0c52a146-c1a9-4306-afe5-ba31eaa18370","page_size":[595,841],"block_position":"29-8"},{"bbox":[117,395,469,410],"type":"text","angle":0,"index":10,"text":"假设A在t0时到达，需要运行100s，而B和C在t=10到达，各自需要运行10s","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"743eac09-1c94-489d-9832-eb829a86acb7","page_size":[595,841],"block_position":"29-9"},{"bbox":[116,425,452,440],"type":"text","angle":0,"index":11,"text":"平均周转时间：（100+（110-10）+（120-10)）/3=103.33s","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"7717ddfb-fe57-4688-ae8d-dc2216e77a40","page_size":[595,841],"block_position":"29-10"},{"bbox":[118,456,293,531],"index":12,"angle":0,"type":"image","img_path":"/9169ebb547d183aac1d6d8de258eab88ceb6d687216a79368c914b0fd32c2026.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.29411764705882354,"page_idx":29,"id":"4c3a8b21-6edd-498e-9491-44fbf232cf71","page_size":[595,841],"block_position":"29-11"},{"bbox":[86,565,127,581],"type":"title","angle":0,"index":13,"text":"# 抢占式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":29,"id":"2e9b0d70-1376-42f8-b0c1-61e3c667922b","page_size":[595,841],"block_position":"29-12"},{"bbox":[86,614,220,627],"type":"text","angle":0,"index":14,"text":"最短剩余时间优先算法SRTN","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"36b3a8af-1073-44eb-a260-000037de6465","page_size":[595,841],"block_position":"29-13"},{"bbox":[86,629,504,658],"type":"text","angle":0,"index":15,"text":"需要比较该进程的下一次运行时间是否比当前运行进程剩余运行时间段，如果是，则抢占当前运行进程的 CPU","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"38f99e10-5dcb-450b-b023-e74958603d35","page_size":[595,841],"block_position":"29-14"}],[{"bbox":[99,100,378,114],"type":"text","angle":0,"index":1,"text":"每当有新的任务到达时，会确定剩余任务和新任务中，谁的剩余时间最少","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"fa7c4b14-a97b-428e-802a-6a82f4053f39","page_size":[595,841],"block_position":"30-0"},{"bbox":[99,120,205,132],"type":"text","angle":0,"index":2,"text":"然后调度该时间最少的任务","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"f25d86a4-4697-4220-ba37-5a99a8d8517d","page_size":[595,841],"block_position":"30-1"},{"bbox":[102,140,248,208],"index":3,"angle":0,"type":"image","img_path":"/4577daa70247aa1c13c98c266c25715da67b24070d3d029ef249a770e98cd73c.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2453781512605042,"page_idx":30,"id":"7b5c085b-5012-4a01-84fc-ee82cba04e80","page_size":[595,841],"block_position":"30-2"},{"bbox":[260,157,323,169],"type":"text","angle":0,"index":4,"text":"平均周转时间：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"8387e34e-7146-44bb-b4bb-806e58f4f14a","page_size":[595,841],"block_position":"30-3"},{"bbox":[258,177,377,187],"type":"interline_equation","angle":0,"index":5,"text":"$$\n(1 0 + 2 0 + 1 2 0) / 3 = 5 0\n$$","color":{"line":"rgba(230, 122, 171, 1)","fill":"rgba(230, 122, 171, 1)"},"page_idx":30,"id":"2f6ac6be-992a-4531-a302-6b901de7b67b","page_size":[595,841],"block_position":"30-4"},{"bbox":[88,219,154,232],"type":"title","angle":0,"index":6,"text":"# 产生饥饿现象","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":30,"id":"7ac5e4ff-f71f-4b17-b170-8dd00f08eb2b","page_size":[595,841],"block_position":"30-5"},{"bbox":[88,254,231,272],"type":"title","angle":0,"index":7,"text":"# 高响应比优先调度算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":30,"id":"c6023a04-7c3d-49c4-a43f-a8340a5915e9","page_size":[595,841],"block_position":"30-6"},{"bbox":[88,305,227,318],"type":"title","angle":0,"index":8,"text":"# 等待时间和执行时间两个因素","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":30,"id":"4f8e27b3-9a39-4c4b-b92b-f7977a96b30c","page_size":[595,841],"block_position":"30-7"},{"bbox":[109,324,244,339],"type":"title","angle":0,"index":9,"text":"# 高响应比优先调度算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":30,"id":"5a04352f-ebe7-4741-9e10-f7d69d7c4c4d","page_size":[595,841],"block_position":"30-8"},{"bbox":[267,320,292,333],"index":10,"angle":0,"type":"image","img_path":"/55fac5c9d3c374e0c25098f27aebcbb299e388c0cf6eef627044ba6b96a5e3f8.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":30,"id":"95c36ffe-39fe-4d1d-a635-dc3d9f531117","page_size":[595,841],"block_position":"30-9"},{"bbox":[350,322,405,342],"type":"title","angle":0,"index":11,"text":"# 九曲阑干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":30,"id":"6dbd281e-7f5d-4bba-b9b2-7872bbd548b0","page_size":[595,841],"block_position":"30-10"},{"bbox":[144,378,326,409],"type":"interline_equation","angle":0,"index":13,"text":"$$\n\\text {响 应 比 (R)} = \\frac {\\text {等 待 时 间} + \\text {执 行 时 间}}{\\text {执 行 时 间}}\n$$","color":{"line":"rgba(230, 122, 171, 1)","fill":"rgba(230, 122, 171, 1)"},"page_idx":30,"id":"a72a471f-c73e-40b8-b36f-f94373385e97","page_size":[595,841],"block_position":"30-11"},{"bbox":[114,421,334,433],"type":"text","angle":0,"index":14,"text":"","id":"1a594449-4074-4ac7-9c80-c0aba31e9bd3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"page_size":[595,841],"block_position":"30-12"},{"bbox":[114,441,336,454],"type":"text","angle":0,"index":15,"text":"·当执行时间相同时，等待时间越长，响应比越高","id":"f49721dc-47ce-451a-9b34-24de4e5a3d62","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"page_size":[595,841],"block_position":"30-13"},{"bbox":[102,522,420,620],"index":18,"angle":0,"type":"table_body","img_path":"/","id":"9062625e-5bbe-4890-83dd-e7395a62a827","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>算法</td><td>思想&amp;规则</td><td>可抢占?</td><td>优点</td><td>缺点</td><td>考虑到等待时间&amp;运行时间?</td><td>会导致饥饿?</td></tr><tr><td>FCFS</td><td>自己回忆</td><td>非抢占式</td><td>公平；实现简单</td><td>对短作业不利</td><td>等待时间√运行时间×</td><td>不会</td></tr><tr><td>SJF/SPF</td><td>自己回忆</td><td>默认为非抢占式，也有SJF的抢占式版本最短剩余时间优先算法（SRTN）</td><td>“最短的”平均等待/周转时间；</td><td>对长作业不利，可能导致饥饿；难以做到真正的短作业优先</td><td>等待时间×运行时间√</td><td>会</td></tr><tr><td>HRRN</td><td>自己回忆</td><td>非抢占式</td><td>上述两种算法的权衡折中，综合考虑的等待时间和运行时间</td><td></td><td>等待时间√运行时间√</td><td>不会</td></tr></table>","page_idx":30,"page_size":[595,841],"block_position":"30-14"},{"bbox":[87,648,164,661],"type":"title","angle":0,"index":19,"text":"# 优先级调度算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":30,"id":"852e1976-fe90-4fac-8a47-dc416def0106","page_size":[595,841],"block_position":"30-15"},{"bbox":[87,664,184,677],"type":"text","angle":0,"index":20,"text":"抢占式、非抢占都有","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"f91e482a-b6a2-4650-800f-f83f59a0df72","page_size":[595,841],"block_position":"30-16"},{"bbox":[86,679,503,707],"type":"text","angle":0,"index":21,"text":"非抢占式，每次调度时选择当前已到达且优先级最高的进程，当前进程主动放弃处理机时发生调度","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"7068d602-2781-47c6-ac96-ad6af761b512","page_size":[595,841],"block_position":"30-17"},{"bbox":[87,710,320,724],"type":"text","angle":0,"index":22,"text":"抢占式还需在就绪队列变化时，检查是否发生抢占","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"0476b0a6-c190-4a4f-9b9e-beb214949b86","page_size":[595,841],"block_position":"30-18"},{"bbox":[87,741,198,755],"type":"text","angle":0,"index":23,"text":"P2先到达，先上处理机","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"2a9214c1-4049-4744-a458-34c891300266","page_size":[595,841],"block_position":"30-19"}],[{"bbox":[88,79,149,91],"type":"text","angle":0,"index":0,"text":"确定优先级？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"0211cbf7-ed74-4032-a644-90c5f1fbff53","page_size":[595,841],"block_position":"31-0"},{"bbox":[88,95,227,107],"type":"text","angle":0,"index":1,"text":"系统进程优先级高于用户进程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"bfddd405-bd6c-42fb-9aee-82db79fcbfe3","page_size":[595,841],"block_position":"31-1"},{"bbox":[88,110,227,122],"type":"text","angle":0,"index":2,"text":"前台进程优先级高于后台进程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"8c9456f1-48d0-456d-8435-3fe181a41fb5","page_size":[595,841],"block_position":"31-2"},{"bbox":[88,125,214,138],"type":"text","angle":0,"index":3,"text":"操作系统更偏好I/O型进程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"fd6e08f2-2dda-47c2-9263-57f166de430d","page_size":[595,841],"block_position":"31-3"},{"bbox":[88,141,276,154],"type":"text","angle":0,"index":4,"text":"与 I/O 型进程相对的时计算型进程（CPU）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"958d1bd5-9a7e-443c-a06a-7f686542588e","page_size":[595,841],"block_position":"31-4"},{"bbox":[88,157,138,169],"type":"text","angle":0,"index":5,"text":"动态提升？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"612880c8-dfde-4be8-bf26-dfc3306031dd","page_size":[595,841],"block_position":"31-5"},{"bbox":[88,172,223,185],"type":"text","angle":0,"index":6,"text":"线程I/O操作结束提升优先级","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"2eb2f3f7-ee08-4ed6-9185-138d34da8d9f","page_size":[595,841],"block_position":"31-6"},{"bbox":[88,188,257,200],"type":"text","angle":0,"index":7,"text":"在就绪队列中随等待时间延长而提升","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"0ff3a071-84d4-44cb-8fb0-d013aeb88083","page_size":[595,841],"block_position":"31-7"},{"bbox":[88,203,217,216],"type":"text","angle":0,"index":8,"text":"随占用CPU时间延长而降低","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"c3882522-38e2-4dcc-b6a4-c52d50e9ccdc","page_size":[595,841],"block_position":"31-8"},{"bbox":[88,219,215,232],"type":"text","angle":0,"index":9,"text":"随剩余运行时间缩短而提升","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"da45aefb-11e3-41f3-8a08-53930517b9d5","page_size":[595,841],"block_position":"31-9"},{"bbox":[88,235,180,248],"type":"text","angle":0,"index":10,"text":"完成I/O操作后提升","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"f9e782bf-16f8-4a95-898d-53835c6f3c60","page_size":[595,841],"block_position":"31-10"},{"bbox":[88,281,213,295],"type":"title","angle":0,"index":11,"text":"# 时间片调度（轮转调度RR）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":31,"id":"58ed5922-2255-414a-88ef-ad427c83d4f5","page_size":[595,841],"block_position":"31-11"},{"bbox":[88,316,385,349],"type":"text","angle":0,"index":13,"text":"每个进程被分配一个时间段，称为时间片 允许进程在该时间段内执行如果在时间片内结束时，该进程没有执行完，接下来会将CPU分配另外","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"794b550a-03a8-447f-b336-273ad8fa0fea","page_size":[595,841],"block_position":"31-12"},{"bbox":[96,375,223,428],"index":15,"angle":0,"type":"image","img_path":"/62431af8f3619f49eca687eb1384b6858e5f9a6a66a7795b46b1fdf188728667.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2134453781512605,"page_idx":31,"id":"7892edad-252e-4198-bca9-2c1c94cab2cf","page_size":[595,841],"block_position":"31-13"},{"bbox":[247,374,375,428],"index":17,"angle":0,"type":"image","img_path":"/eb8d6b9e8bfa6448fb6f192be2e024294f775659de2b2b918d8bd7b0a8dc54f5.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.21512605042016808,"page_idx":31,"id":"e86281dd-4d98-43f7-9def-ce04ae840219","page_size":[595,841],"block_position":"31-14"},{"bbox":[89,472,329,502],"type":"text","angle":0,"index":19,"text":"刻就绪队列中的进程、进程的剩余运行时间）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"544781dc-9ab7-484d-8f5f-fef8a5fede8e","page_size":[595,841],"block_position":"31-15"},{"bbox":[358,463,516,503],"index":20,"angle":0,"type":"image","img_path":"/6422c90657fb0b5f824af42a30fb896178f038a2625d23deff101daaef9661ab.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.26554621848739496,"page_idx":31,"id":"1371d231-eed9-469d-8055-d23abc920821","page_size":[595,841],"block_position":"31-16"},{"bbox":[89,508,475,523],"type":"text","angle":0,"index":21,"text":"0时刻（P1（5））：0时刻只有P1到达就绪队列，让P1上处理机运行一个时间片","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"2ed0f1e0-16d9-4f52-bd69-07e41e990f0b","page_size":[595,841],"block_position":"31-17"},{"bbox":[89,524,594,566],"type":"text","angle":0,"index":22,"text":"2时刻（P2（4）→P1（3））：2时刻P2到达就绪队列，P1运行完一个时间片，被剥夺处理机，重新放到此时P2排在队头，因此让P2上处理机。（注意：2时刻，P1下处理机，同一时刻新进程P2到达，如题目中遇到这种情况，默认新到达的进程先进入就绪队列）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"003c87d6-cb3f-4a5c-8b3c-78e39d2a755c","page_size":[595,841],"block_position":"31-18"},{"bbox":[88,606,594,635],"type":"text","angle":0,"index":23,"text":"7时刻（P2（2)→P4（6）→P1（1））：虽然P3的时间片没用完，但是由于P3只需运行1个单位的时间，完了会主动放弃处理机，因此也会发生调度。队头进程P2上处理机。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"e247d3fa-cf2e-4a65-8f58-f00c72ac830d","page_size":[595,841],"block_position":"31-19"},{"bbox":[86,655,398,684],"type":"text","angle":0,"index":24,"text":"如果每个进程都在一个时间片内完成，则轮转算法退化为FCFS算法如何确定时间片的长度？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"ff27e6fd-870a-481f-a1d0-ce4a9ece8593","page_size":[595,841],"block_position":"31-20"},{"bbox":[88,687,171,699],"type":"text","angle":0,"index":25,"text":"1、系统响应时间","id":"244a5ebd-82bb-42f1-82f3-17d6567bb907","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"page_size":[595,841],"block_position":"31-21"},{"bbox":[88,702,182,714],"type":"text","angle":0,"index":26,"text":"2、就绪进程的数量","id":"4fdf2ce0-809a-45e8-bef9-ab303b4d3c56","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"page_size":[595,841],"block_position":"31-22"},{"bbox":[88,717,276,730],"type":"text","angle":0,"index":27,"text":"3、进程调度以及上下文切换的时间开销","id":"6d6f242f-e809-43f8-90ee-707844318553","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"page_size":[595,841],"block_position":"31-23"},{"bbox":[88,734,180,746],"type":"text","angle":0,"index":28,"text":"4、CPU指令的速度","id":"bb3d3285-ec4f-4d27-95b0-5ce8b9cd4eca","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"page_size":[595,841],"block_position":"31-24"}],[{"bbox":[88,84,175,101],"type":"title","angle":0,"index":0,"text":"# 多级队列调度","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":32,"id":"39d631d0-83dc-41ac-9878-5a12022fedeb","page_size":[595,841],"block_position":"32-0"},{"bbox":[88,144,395,313],"index":1,"angle":0,"type":"image","img_path":"/4dee2ffc70f1763025c5332eac4f88e12fb826926ad7caafb3972d85b8da3cbd.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5159663865546219,"page_idx":32,"id":"da589a58-528a-44e5-96d2-5ef814f0398c","page_size":[595,841],"block_position":"32-1"},{"bbox":[88,343,202,359],"type":"title","angle":0,"index":2,"text":"# 多级反馈队列调度","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":32,"id":"2ace22dc-d2c7-4066-8f97-935d6df93682","page_size":[595,841],"block_position":"32-2"},{"bbox":[88,389,311,500],"index":3,"angle":0,"type":"image","img_path":"/5feb8df8efe4e3b81a322d1ceff0baee9d767c6c1ecec1554a5c1499b4eefbbd.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.37478991596638656,"page_idx":32,"id":"de68c66c-e368-4a63-881e-dc64f5346ef6","page_size":[595,841],"block_position":"32-3"},{"bbox":[87,518,249,532],"type":"text","angle":0,"index":4,"text":"优先级从高到低，时间片从小到大","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":32,"id":"3c3d5549-a1d1-4351-9306-8399492c8f87","page_size":[595,841],"block_position":"32-4"},{"bbox":[86,550,269,562],"type":"text","angle":0,"index":5,"text":"各队列之间采用抢占式优先级算法调度","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":32,"id":"57ccc041-be99-43fc-89db-0dabab57759e","page_size":[595,841],"block_position":"32-5"},{"bbox":[86,565,504,594],"type":"text","angle":0,"index":6,"text":"当CPU正在运行第i个队列中的某个进程时，又有进程而进入优先级较高的队列，则系统立即调度高优先级的进程进行","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":32,"id":"34c2d093-37c1-4abc-a791-fe8611965547","page_size":[595,841],"block_position":"32-6"},{"bbox":[99,608,463,722],"index":7,"angle":0,"type":"table_body","img_path":"/","id":"e48189d0-1446-447b-9f04-87220d6df208","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>算法</td><td>思想&amp;规则</td><td>可抢占?</td><td>优点</td><td>缺点</td><td>会导致饥饿?</td><td>补充</td></tr><tr><td>时间片轮转</td><td></td><td>抢占式</td><td>公平,适用于分时系统</td><td>频繁切换有开销,不区分优先级</td><td>不会</td><td>时间片太大或太小有何影响?</td></tr><tr><td>优先级调度</td><td></td><td>有抢占式的,也有非抢占式的。注意做题时的区别</td><td>区分优先级,适用于实时系统</td><td>可能导致饥饿</td><td>会</td><td>动态/静态优先级。各类型进程如何设置优先级?如何调整优先级?</td></tr><tr><td>多级反馈队列</td><td>较复杂,注意理解</td><td>抢占式</td><td>平衡优秀666</td><td>一般不说它有缺点,不过可能导致饥饿</td><td>会</td><td></td></tr></table>","page_idx":32,"page_size":[595,841],"block_position":"32-7"}],[{"bbox":[88,84,175,101],"type":"title","angle":0,"index":0,"text":"# 多处理器调度","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":33,"id":"edfd69ec-64b5-4f79-82ae-ce89daec6138","page_size":[595,841],"block_position":"33-0"},{"bbox":[86,151,361,163],"type":"text","angle":0,"index":1,"text":"除了调度算法决定让哪个进程上 CPU，还要确定上哪个 CPU","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"ee45e950-27c4-4df3-8656-4b61c2116234","page_size":[595,841],"block_position":"33-1"},{"bbox":[88,167,132,179],"type":"text","angle":0,"index":2,"text":"负载均衡","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"3d0ccf06-9c48-4231-a81f-23c1263e6b5c","page_size":[595,841],"block_position":"33-2"},{"bbox":[88,183,152,195],"type":"text","angle":0,"index":3,"text":"处理机亲和性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"4a655379-6f4a-46c3-bcaf-4b3e379cc2f1","page_size":[595,841],"block_position":"33-3"},{"bbox":[88,199,152,211],"type":"text","angle":0,"index":4,"text":"XPU数据共享","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"7e435d01-8732-4cc2-b25d-23fb765bf065","page_size":[595,841],"block_position":"33-4"},{"bbox":[88,214,142,226],"type":"text","angle":0,"index":5,"text":"缓存一致性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"0ab392eb-8a58-4c19-a393-ec077308d7ad","page_size":[595,841],"block_position":"33-5"},{"bbox":[88,229,169,242],"type":"text","angle":0,"index":6,"text":"1、公共就绪队列","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"a223141b-738b-4d82-a571-2ba494103a25","page_size":[595,841],"block_position":"33-6"},{"bbox":[88,263,122,280],"type":"title","angle":0,"index":7,"text":"# 线程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":33,"id":"afbdd8b1-bfd7-4a3c-a848-91c5d5915e86","page_size":[595,841],"block_position":"33-7"},{"bbox":[89,314,320,329],"type":"text","angle":0,"index":8,"text":"·许多应用中，存在许多同时发生的多种活动","id":"fb3f7471-e6df-485b-8926-0e67358a8155","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"page_size":[595,841],"block_position":"33-8"},{"bbox":[89,344,407,359],"type":"text","angle":0,"index":9,"text":"·线程比进程更轻量级，所以比进程更容易创建，也更容易撤销","id":"f48d5d18-c5d1-4224-abf7-faa21ed54bd5","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"page_size":[595,841],"block_position":"33-9"},{"bbox":[89,375,400,389],"type":"text","angle":0,"index":10,"text":"·如果多个线程是计算密集型，那么并不能获得性能上的增加。","id":"f2b5c268-40b5-40f0-b6e2-25450388f1e5","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"page_size":[595,841],"block_position":"33-10"},{"bbox":[96,396,400,411],"type":"text","angle":0,"index":12,"text":"如果是计算和I0的处理，那么多线程允许这些操作重叠执行。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"85c20064-638f-45cc-bc2e-dc02f7cf9504","page_size":[595,841],"block_position":"33-11"},{"bbox":[86,428,236,440],"type":"text","angle":0,"index":13,"text":"轻量级：不需要保存那么多信息","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"863f9866-5a79-45c6-a836-fa78bd81b42d","page_size":[595,841],"block_position":"33-12"},{"bbox":[86,444,299,455],"type":"text","angle":0,"index":14,"text":"因为 CPU 只有一个，多个线程还是会竞争 CPU","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"a089a996-99e9-4783-a04a-5782de610d2d","page_size":[595,841],"block_position":"33-13"},{"bbox":[86,459,443,471],"type":"text","angle":0,"index":15,"text":"如果是计算和IO的处理，那么多线程允许这些操作的重叠执行。会提升性能。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"08b795a5-43f2-4322-baaa-4e24c1ff0507","page_size":[595,841],"block_position":"33-14"},{"bbox":[88,474,153,486],"type":"text","angle":0,"index":16,"text":"多线程 $\\neq$ 并行","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"3b707436-7c6d-4870-ad97-2487981ef001","page_size":[595,841],"block_position":"33-15"},{"bbox":[86,490,301,502],"type":"text","angle":0,"index":17,"text":"提高系统的并发程度，同一个进程中两个线程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"a5b23758-6011-4b80-aea5-3be5544fd0c0","page_size":[595,841],"block_position":"33-16"},{"bbox":[86,506,425,518],"type":"text","angle":0,"index":18,"text":"线程作为调度和执行到基本单位，把进程作为资源分配和拥有的基本单位","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"09c52a2a-c9b9-4506-8ee5-b9451c186bf3","page_size":[595,841],"block_position":"33-17"},{"bbox":[124,561,252,648],"index":20,"angle":0,"type":"image","img_path":"/66c5c3be6c24cba96a9a16b001da7f181216bcb311934d35b5fbdb09640ac448.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.21512605042016808,"page_idx":33,"id":"ad6e2d83-b788-4ee2-9e2e-226f8b385bcb","page_size":[595,841],"block_position":"33-18"},{"bbox":[204,649,210,656],"index":21,"angle":0,"type":"image_caption","text":"a)","id":"53b23789-d27f-4078-9657-c4a79e35d949","color":{"line":"rgba(13, 83, 222 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"page_size":[595,841],"block_position":"33-19"},{"bbox":[261,564,351,648],"index":22,"angle":0,"type":"image","img_path":"/01bd4101e2902c635f685d0a38604ce5351e06f101bff927347995a1f1ef9950.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":33,"id":"d4d00e70-b752-484f-abd9-8197934ac410","page_size":[595,841],"block_position":"33-20"},{"bbox":[304,648,312,655],"index":23,"angle":0,"type":"image_caption","text":"b)","id":"a5628e5e-ada8-4798-953b-f9c02a2b385d","color":{"line":"rgba(13, 83, 222 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"page_size":[595,841],"block_position":"33-21"},{"bbox":[120,671,353,685],"index":24,"angle":0,"type":"image_caption","text":"图2-11a)三个进程，每个进程有一个线程；b)","id":"da16e9f1-1b7e-41c5-8ff2-8fa75c4d7a22","color":{"line":"rgba(13, 83, 222 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"page_size":[595,841],"block_position":"33-22"},{"bbox":[189,690,285,703],"type":"text","angle":0,"index":25,"text":"一个进程带三个线程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"f5c1aa0d-6b2d-4c53-b191-38a42aa73858","page_size":[595,841],"block_position":"33-23"}],[{"bbox":[364,89,422,109],"type":"title","angle":0,"index":1,"text":"# 九曲闲干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":34,"id":"0056745e-3ff0-4511-accc-9ddbdcfa5c80","page_size":[595,841],"block_position":"34-0"},{"bbox":[121,141,197,153],"type":"text","angle":0,"index":2,"text":"每个进程中的内容","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"b4dbd892-1292-42d5-a01c-13c7831ec710","page_size":[595,841],"block_position":"34-1"},{"bbox":[122,153,159,161],"type":"text","angle":0,"index":3,"text":"地址空间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"9f6bad79-02e9-4e54-932f-3900697d22bf","page_size":[595,841],"block_position":"34-2"},{"bbox":[122,162,159,171],"type":"text","angle":0,"index":4,"text":"全局变量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"8c89ddf1-029d-46db-ada6-4f01361a3a3c","page_size":[595,841],"block_position":"34-3"},{"bbox":[122,172,159,181],"type":"text","angle":0,"index":5,"text":"打开文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"b5ce10d4-168a-455b-8975-2da20c6edfe3","page_size":[595,841],"block_position":"34-4"},{"bbox":[123,182,150,191],"type":"text","angle":0,"index":6,"text":"子进程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"3e3371e4-d2ad-4093-a147-70903c47dbdf","page_size":[595,841],"block_position":"34-5"},{"bbox":[123,192,187,201],"type":"text","angle":0,"index":7,"text":"即将发生的报警","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"3ccc8f3c-05f4-4b91-a938-ee82e8d1d8ee","page_size":[595,841],"block_position":"34-6"},{"bbox":[278,142,352,153],"type":"text","angle":0,"index":10,"text":"每个线程中的内容","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"2158ff67-5d86-49e7-ae80-6d20fe215fed","page_size":[595,841],"block_position":"34-7"},{"bbox":[278,153,324,162],"type":"text","angle":0,"index":11,"text":"程序计数器","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"1bff18c7-2aff-4f3c-b8af-f0d1e69ea77d","page_size":[595,841],"block_position":"34-8"},{"bbox":[278,182,297,191],"type":"text","angle":0,"index":14,"text":"状态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"ae361ec4-a2cf-476e-88eb-8b5044af0803","page_size":[595,841],"block_position":"34-9"},{"bbox":[88,281,143,295],"type":"title","angle":0,"index":15,"text":"# 用户级线程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":34,"id":"18cb3e6a-afbc-49ae-92fc-218028bbc662","page_size":[595,841],"block_position":"34-10"},{"bbox":[86,312,503,341],"type":"text","angle":0,"index":16,"text":"运行在用户态，由支撑线程一组应用程序代码完成， 该组代码称为线程库，运行在用户空间，","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"ba227231-403a-403a-8d43-26dd9433a6c4","page_size":[595,841],"block_position":"34-11"},{"bbox":[87,343,311,356],"type":"text","angle":0,"index":17,"text":"操作系统并不知道线程的单位，仍以进程为单位","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"091b3a92-04d9-462c-b91f-fc4d88e75b91","page_size":[595,841],"block_position":"34-12"},{"bbox":[87,359,447,372],"type":"text","angle":0,"index":18,"text":"很多编程语言提供了强大的线程库，可以实现线程的创建、销毁、调度等功能","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"a4a2ce34-5aeb-4f21-917b-377750bbf26a","page_size":[595,841],"block_position":"34-13"},{"bbox":[88,375,158,387],"type":"title","angle":0,"index":19,"text":"# 19. 线程的引入","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":34,"id":"e51cd565-7c02-4d2f-b679-11e2c4c609eb","page_size":[595,841],"block_position":"34-14"},{"bbox":[87,391,473,418],"type":"text","angle":0,"index":20,"text":"‐将拥有资源的实体和执行的实体分开，使执行的实体具有较少的资源，从而减少并发执行的开销，从而提高系统的并发程度。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"4b89730b-2682-47bb-922f-ba45d41ef763","page_size":[595,841],"block_position":"34-15"},{"bbox":[88,422,237,434],"type":"text","angle":0,"index":21,"text":"‐ 拥有资源的基本单位——进程；","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"ca2ba3c9-61e6-4d0e-8fde-a1f0166122ea","page_size":[595,841],"block_position":"34-16"},{"bbox":[88,437,343,449],"type":"text","angle":0,"index":22,"text":"‐执行的基本单位（即 CPU 调度和分派的单位)——线程。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"5de76a72-804f-4134-bb19-fa506d6e732d","page_size":[595,841],"block_position":"34-17"},{"bbox":[87,453,477,497],"type":"text","angle":0,"index":23,"text":"$\\blacktriangle$ 线程是进程内一个相对独立的运行单位，一个进程可以有一个或多个线程（至少有一个），这些线程共享这个进程的代码、数据及大部分管理信息，但每个线程有自己的程序计数器、堆栈和线程控制块。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"1bb68454-0804-48b3-a7ff-bfdde19ee915","page_size":[595,841],"block_position":"34-18"},{"bbox":[87,500,470,528],"type":"text","angle":0,"index":24,"text":"$\\blacktriangle$ 但对用户级线程而言，内核进行 CPU 调度仍然以进程（而不是用户级线程）为单位。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"b79137ad-31a7-4b9c-b29f-f731f448e31f","page_size":[595,841],"block_position":"34-19"},{"bbox":[88,530,171,544],"type":"text","angle":0,"index":25,"text":"内核级线程（KLT）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"50a248bc-a6f1-4caa-b240-6086cd4b4b17","page_size":[595,841],"block_position":"34-20"},{"bbox":[88,546,132,559],"type":"text","angle":0,"index":26,"text":"组合方式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"e63d9056-f88f-4c2c-82f6-35facaefda83","page_size":[595,841],"block_position":"34-21"},{"bbox":[88,582,161,598],"type":"title","angle":0,"index":27,"text":"# 线程表 TCB","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":34,"id":"e0e9c8e1-e828-497e-91d0-55df390008a1","page_size":[595,841],"block_position":"34-22"},{"bbox":[87,633,226,645],"type":"text","angle":0,"index":28,"text":"左边是线程与进程共享的内容","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"d3743db3-e91a-42d1-9545-6768b4de6135","page_size":[595,841],"block_position":"34-23"}],[{"bbox":[121,84,284,195],"index":0,"angle":0,"type":"image","img_path":"/a6f22609666baedbe9a12d807b64ff08767f2ef517e7b362acca015d251dd511.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2739495798319328,"page_idx":35,"id":"c45e8b53-7b5f-48c2-b96e-b567e01a803c","page_size":[595,841],"block_position":"35-0"},{"bbox":[88,219,154,232],"type":"title","angle":0,"index":1,"text":"# 线程包的实现","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":35,"id":"dbd1c228-7093-46cc-b7b5-92ed14599f06","page_size":[595,841],"block_position":"35-1"},{"bbox":[88,235,172,248],"type":"title","angle":0,"index":2,"text":"# 1、 用户进程管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":35,"id":"497ee367-e101-45e2-9920-3fde7463ab60","page_size":[595,841],"block_position":"35-2"},{"bbox":[105,249,424,264],"type":"text","angle":0,"index":3,"text":"先放置在用户空间中，内核的角度按正常的方式管理，即单线程进程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"id":"f09997ea-91f3-46e3-9db6-523679f2dda5","page_size":[595,841],"block_position":"35-3"},{"bbox":[88,266,172,279],"type":"title","angle":0,"index":4,"text":"# 2、 内核管理线程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":35,"id":"7c7052c1-93c8-4457-9add-26fe5c943cec","page_size":[595,841],"block_position":"35-4"},{"bbox":[105,281,192,294],"type":"text","angle":0,"index":5,"text":"但是内核开销较大","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"id":"63d0752c-939c-4253-bfe0-372d0c8fbcc0","page_size":[595,841],"block_position":"35-5"},{"bbox":[88,297,129,310],"type":"title","angle":0,"index":6,"text":"# 3、 混合","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":35,"id":"97f0964c-b224-4c28-9034-7d67bc10c6cd","page_size":[595,841],"block_position":"35-6"},{"bbox":[120,326,339,518],"index":7,"angle":0,"type":"image","img_path":"/95d95e1016cd7a2a7d37e11fbb97c4d366254424b5a3c272c5bb436192a5d75e.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3680672268907563,"page_idx":35,"id":"13b28877-8bce-4233-8a6e-b58cc8c241d5","page_size":[595,841],"block_position":"35-7"},{"bbox":[342,327,480,508],"index":8,"angle":0,"type":"image","img_path":"/114afbc6a543b8e10757ad564b99d42ff34009a6c9001672e3680b66af5e4992.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2319327731092437,"page_idx":35,"id":"96638ae2-9b93-4cd4-b36f-bd07f4f2cb6f","page_size":[595,841],"block_position":"35-8"},{"bbox":[130,532,457,731],"index":9,"angle":0,"type":"image","img_path":"/94c5652d51cb1031475bc3426cb8dee1b4a4a854e3763e4fce776b3cfa99eb8c.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5495798319327732,"page_idx":35,"id":"d48ee696-c8fd-41e9-adab-4a413b57c67c","page_size":[595,841],"block_position":"35-9"}],[{"bbox":[88,84,170,103],"type":"title","angle":0,"index":0,"text":"# 同步和异步","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":36,"id":"79c7b79d-904e-441c-bf1a-3e8f1583cda2","page_size":[595,841],"block_position":"36-0"},{"bbox":[86,140,132,152],"type":"title","angle":0,"index":1,"text":"# 临界资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":36,"id":"9b0be62e-caa5-47a7-9267-5692c8f6605d","page_size":[595,841],"block_position":"36-1"},{"bbox":[86,155,394,167],"type":"text","angle":0,"index":2,"text":"系统中某些资源一次只允许一个进程使用。这类自愿成为临界资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"89c3b455-9924-49aa-9fed-4918f4b6b403","page_size":[595,841],"block_position":"36-2"},{"bbox":[86,171,342,183],"type":"text","angle":0,"index":3,"text":"如物理设备打印机、软件资源共享变量、文件、表格等","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"219b77e4-c588-41d2-a7ec-40e27c1b9b46","page_size":[595,841],"block_position":"36-3"},{"bbox":[86,186,195,198],"type":"text","angle":0,"index":4,"text":"必须以互斥的方式共享","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"3a92b08e-6951-4267-a0f4-53065e036189","page_size":[595,841],"block_position":"36-4"},{"bbox":[86,201,311,214],"type":"text","angle":0,"index":5,"text":"每个进程中访问临界资源的那段代码叫做临界区","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"ad75138e-ea0e-43c0-9af2-5c1ebd250c57","page_size":[595,841],"block_position":"36-5"},{"bbox":[86,217,504,261],"type":"text","angle":0,"index":6,"text":"每个进程在进入临界区之前应该先对欲访问的临界资源进行检查，看它是否正被其他进程访问，如果临界资源未被其它进程访问，则该进程便可进入临界区访问该临界资源，并把临界源的状态设置为“忙”；","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"ecbb0d77-272c-4b4b-bd84-c3180d77e2bf","page_size":[595,841],"block_position":"36-6"},{"bbox":[86,264,504,307],"type":"text","angle":0,"index":7,"text":"通常把这段置于临界区之前的用于检查临界资源使用状态的代码称为进入区，相应地，当进程访问完临界资源退出临界区时，将临界资源状态恢复为“空闲”。完成该项工作的代码称为“退出区”。其余无关的称为“剩余区”","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"244cd0d4-5fac-4258-af63-dcdc3131ebc8","page_size":[595,841],"block_position":"36-7"},{"bbox":[132,309,382,321],"type":"text","angle":0,"index":8,"text":"对临界资源的互斥访问，可以在逻辑上分为如下四个部分：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"4ecfb79d-57c5-4e43-8f29-239df039b9e0","page_size":[595,841],"block_position":"36-8"},{"bbox":[136,329,511,449],"index":9,"angle":0,"type":"image","img_path":"/f4e76ceaffff199e788176f40c1c2597f7e2f9ecbfb8b866a887205b150b4a70.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6302521008403361,"page_idx":36,"id":"e960dc4a-9de0-4add-95e2-c628066cd644","page_size":[595,841],"block_position":"36-9"},{"bbox":[132,470,305,481],"type":"text","angle":0,"index":11,"text":"临界区是进程中访问临界资源的代码段。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"36e75a68-928c-4aa2-b71f-2665d266551f","page_size":[595,841],"block_position":"36-10"},{"bbox":[132,481,315,493],"type":"text","angle":0,"index":12,"text":"进入区和退出区是负责实现互斥的代码段。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"3c826554-c727-4231-9b82-544b33d562d5","page_size":[595,841],"block_position":"36-11"},{"bbox":[87,514,111,526],"type":"title","angle":0,"index":13,"text":"# 互斥","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":36,"id":"e5f2fb41-4498-42f0-912d-8c50bba05965","page_size":[595,841],"block_position":"36-12"},{"bbox":[87,529,132,542],"type":"title","angle":0,"index":14,"text":"# 互斥共享","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":36,"id":"2d02be01-7af8-4d47-be9a-0df8e7eb0cc4","page_size":[595,841],"block_position":"36-13"},{"bbox":[86,544,279,557],"type":"text","angle":0,"index":15,"text":"称之为临界资源。必须以互斥的方式访问","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"560a63e2-6c58-4819-8f62-eb88ab3477b3","page_size":[595,841],"block_position":"36-14"},{"bbox":[87,560,132,573],"type":"text","angle":0,"index":16,"text":"同时共享","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"6d1ab5ab-1704-4fc2-8d82-9688a3b22bba","page_size":[595,841],"block_position":"36-15"},{"bbox":[87,576,111,588],"type":"text","angle":0,"index":17,"text":"同步","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"0767b8b1-5408-4a7b-b5da-9415e44c2164","page_size":[595,841],"block_position":"36-16"},{"bbox":[86,591,405,603],"type":"text","angle":0,"index":18,"text":"直接制约关系，某些位置上协调，相互合作的进程按一定的先后顺序","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"99a81fcd-55af-4471-9707-ec0030a35761","page_size":[595,841],"block_position":"36-17"},{"bbox":[87,607,164,619],"type":"title","angle":0,"index":19,"text":"# 进程的制约关系","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":36,"id":"2e99389b-d28f-4b0d-98ba-8dc9dba6c416","page_size":[595,841],"block_position":"36-18"},{"bbox":[87,623,207,635],"type":"text","angle":0,"index":20,"text":"直接制约：源于进程合作","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"65d393e7-e69e-497b-bd45-eb66046b30ed","page_size":[595,841],"block_position":"36-19"},{"bbox":[87,638,206,650],"type":"text","angle":0,"index":21,"text":"间接制约：源于资源共享","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"28a193e4-6cc0-46e8-826f-ddca99b00168","page_size":[595,841],"block_position":"36-20"},{"bbox":[87,654,127,666],"type":"title","angle":0,"index":22,"text":"# 10. 同步","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":36,"id":"a477c774-9378-47f0-85aa-a77316db64f6","page_size":[595,841],"block_position":"36-21"},{"bbox":[86,669,461,682],"type":"text","angle":0,"index":23,"text":"为了保证进程正确的并发执行，对多个相关进程在执行的次序上进行协调的过程。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"e9cf595c-717e-4e3e-affa-b4f5a0108b75","page_size":[595,841],"block_position":"36-22"},{"bbox":[87,685,132,698],"type":"text","angle":0,"index":24,"text":"竞争条件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"b1c1cdb7-4a0f-45d7-8e87-b247cb06cce1","page_size":[595,841],"block_position":"36-23"}],[{"bbox":[91,74,451,247],"index":0,"angle":0,"type":"image","img_path":"/a4e9f88460c29e79fcb947f62ef003b71da4d7a686a86159a2a52f8b0cefe3c0.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6050420168067226,"page_idx":37,"id":"4e289a1f-53f6-40f6-8742-de13ed8f9058","page_size":[595,841],"block_position":"37-0"},{"bbox":[86,250,232,262],"type":"text","angle":0,"index":1,"text":"Out：打印机即将要打印的位置","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"d28d8403-5940-40bb-b322-f665a4385c4a","page_size":[595,841],"block_position":"37-1"},{"bbox":[86,266,245,279],"type":"text","angle":0,"index":2,"text":"In：打印机需要把文件送入的位置","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"bbae1cb5-1b6f-4a34-b9aa-f6f8f2b63ec7","page_size":[595,841],"block_position":"37-2"},{"bbox":[86,281,318,294],"type":"text","angle":0,"index":3,"text":"进程 A，进程 B 几乎在同一时刻向打印机发送文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"90ba7e88-ee11-4785-b126-df13bfdc5efd","page_size":[595,841],"block_position":"37-3"},{"bbox":[86,296,418,310],"type":"text","angle":0,"index":4,"text":"进程 A 还没有完，时间片用完，切换进程 B，此时 $\\mathsf { i n } { } = 7$ 是空的，覆盖了。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"277de476-c8eb-4617-a598-af7e6be5b4f7","page_size":[595,841],"block_position":"37-4"},{"bbox":[87,312,126,325],"type":"text","angle":0,"index":5,"text":"临界区：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"91a9ee04-ca9a-4936-b5a3-91b7b10124da","page_size":[595,841],"block_position":"37-5"},{"bbox":[86,327,293,341],"type":"text","angle":0,"index":6,"text":"对共享内存进行访问的程序片段称为临界区。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"761bc722-a970-4aa3-84d2-f2b8f41391ad","page_size":[595,841],"block_position":"37-6"},{"bbox":[86,343,304,356],"type":"text","angle":0,"index":7,"text":"每个进程中访问临界资源的那段代码为临界区。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"d02a7c98-e728-43c5-bc91-d8de83b72d7b","page_size":[595,841],"block_position":"37-7"},{"bbox":[86,359,504,387],"type":"text","angle":0,"index":8,"text":"临界资源：系统中某些资源一次只允许一个进程使用，多个进程共享临界资源时，必须互斥方式共享。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"ff33f3aa-3b89-47e2-9e32-eaf68b1cfcfa","page_size":[595,841],"block_position":"37-8"},{"bbox":[87,391,247,402],"type":"text","angle":0,"index":9,"text":"临界区：访问临界资源的那段代码","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"bbc82a54-f637-4d87-acae-b0bd80668dae","page_size":[595,841],"block_position":"37-9"},{"bbox":[88,407,440,599],"index":10,"angle":0,"type":"image","img_path":"/b8faed76a486b5f850ab000b7c0c110cc6e1c1bdfb0689345b183b0fa385177e.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5915966386554622,"page_idx":37,"id":"7428dee3-ea07-427a-9f26-80c70c625fa3","page_size":[595,841],"block_position":"37-10"}],[{"bbox":[88,84,208,101],"type":"title","angle":0,"index":0,"text":"# 同步机制满足原则：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":38,"id":"4a3348b8-ca21-4d0c-b5df-902ccc89c3fc","page_size":[595,841],"block_position":"38-0"},{"bbox":[108,131,377,167],"type":"text","angle":0,"index":1,"text":"算法 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":38,"id":"b2889bbe-82e0-4900-bc69-7e482449852a","page_size":[595,841],"block_position":"38-1"},{"bbox":[117,172,301,188],"type":"text","angle":0,"index":2,"text":"1.任何两个进程不能同时处于其临界区","id":"3eecd4b5-aa0a-4431-953a-98645eb061d1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":38,"page_size":[595,841],"block_position":"38-2"},{"bbox":[116,193,279,205],"type":"text","angle":0,"index":3,"text":"2.不应对CPU的速度和数量做任何假设","id":"c851f477-a034-4f61-bfdb-5e257d079e4e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":38,"page_size":[595,841],"block_position":"38-3"},{"bbox":[116,213,294,224],"type":"text","angle":0,"index":4,"text":"3.临界区外运行的进程不得阻塞其他进程","id":"6fee373b-9c4e-42e2-9ba8-e0c721e0e2d8","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":38,"page_size":[595,841],"block_position":"38-4"},{"bbox":[117,232,274,244],"type":"text","angle":0,"index":5,"text":"4.不得使进程无限期等待进入临界区","id":"9435964a-f0e5-4704-ab1d-648a9720939f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":38,"page_size":[595,841],"block_position":"38-5"},{"bbox":[86,275,455,289],"type":"text","angle":0,"index":7,"text":"1、 空闲让进，临界区空闲时，允许一个请求进入临界区的进程立即进入临界区","id":"40c446e0-9362-4858-b44a-5e834661912a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":38,"page_size":[595,841],"block_position":"38-6"},{"bbox":[86,291,445,304],"type":"text","angle":0,"index":8,"text":"2、忙则等待，当已有进程接入临界区，其它试图进入临界区的进程必须等待","id":"9befa230-3564-45b0-a876-0afab615e3ea","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":38,"page_size":[595,841],"block_position":"38-7"},{"bbox":[86,306,489,321],"type":"text","angle":0,"index":9,"text":"3、有限等待，对请求访问的进程，应保证能在有限时间内进入临界区（保证不会饥饿）","id":"0a219e83-73ce-429f-bf54-8dfbe344af84","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":38,"page_size":[595,841],"block_position":"38-8"},{"bbox":[86,322,349,336],"type":"text","angle":0,"index":10,"text":"4、 让权等待，当进程不能进入临界区，应立即释放 CPU","id":"26a45ae7-08d1-4bf2-a4c0-faffd44c0fdd","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":38,"page_size":[595,841],"block_position":"38-9"},{"bbox":[88,338,151,351],"type":"text","angle":0,"index":12,"text":"Peterson 算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":38,"id":"5b9f9ca7-efc9-47f2-b9d7-7c5efa6d3bea","page_size":[595,841],"block_position":"38-10"},{"bbox":[396,349,514,375],"type":"text","angle":0,"index":13,"text":"Falserx","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":38,"id":"4eddcea4-712d-4c93-9dc6-4fd77dae9b3d","page_size":[595,841],"block_position":"38-11"},{"bbox":[87,371,517,640],"index":14,"angle":0,"type":"code","text":"```txt\ndefine FALSE 0\n#define TRUE 1\n#define N 2\nint turn;\nint interested[N];\nvoid enter_region(int process);\n{\n    int other;\n    other = 1 - process; //其他进程号 */\n    interested[process] = TRUE; /*另一方进程*/\n    turn = process; /*表明所感兴趣的*/\n    while (turn == process && interested[other] == TRUE); /*空语句 */\n}\nvoid leave_region(int process)\n{\n    interested[process] = FALSE; /*表示离开临界区*/\n}\n```","id":"3001b69f-9cea-4754-97d2-9ef6a4010d37","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":38,"page_size":[595,841],"block_position":"38-12"},{"bbox":[86,670,147,687],"type":"title","angle":0,"index":15,"text":"# 硬件方式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":38,"id":"9f49733a-cb70-4d5e-a932-ef77929a982b","page_size":[595,841],"block_position":"38-13"},{"bbox":[87,720,164,735],"type":"text","angle":0,"index":16,"text":"均存在让权等待","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":38,"id":"dd09d8b7-1fb0-4a10-bd93-1f8d936eef24","page_size":[595,841],"block_position":"38-14"}],[{"bbox":[87,84,147,101],"type":"title","angle":0,"index":0,"text":"# 禁止中断","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":39,"id":"1c286153-76ef-4095-8605-fc2c51c307b7","page_size":[595,841],"block_position":"39-0"},{"bbox":[86,171,202,188],"type":"title","angle":0,"index":1,"text":"# 利用专用机器指令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":39,"id":"a60a7d86-4e74-4ac0-b6bb-391ca2126c87","page_size":[595,841],"block_position":"39-1"},{"bbox":[86,222,252,235],"type":"text","angle":0,"index":2,"text":"解决 Swap 指令/XCHG 指令/TSL 指令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":39,"id":"1d314dd4-9d78-4211-9d69-e54fb80d593a","page_size":[595,841],"block_position":"39-2"},{"bbox":[86,238,354,250],"type":"text","angle":0,"index":3,"text":"执行的过程不允许中断，利用硬件的方式变成了原子操作","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":39,"id":"0afc4503-1c70-4f41-90cc-d88c91f2408b","page_size":[595,841],"block_position":"39-3"},{"bbox":[123,249,595,259],"type":"text","angle":0,"index":4,"text":"ISL指令定用硬件实现的，执行的过程不元计被中断，只能一气呵成。以下定用请言拥还的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":39,"id":"e8e89b9f-4c0d-4f65-adf8-e7458a8ff7bd","page_size":[595,841],"block_position":"39-4"},{"bbox":[112,278,393,387],"index":5,"angle":0,"type":"code","text":"```txt\n//布尔型共享变量lock表示当前临界区是否被加锁  \n//true表示已加锁，false表示未加锁  \nboolTestAndSet（bool\\*lock）{  \n    bool old;  \n    old = \\*lock; //old用来存放lock原来的值  \n    \\*lock = true; //无论之前是否已加锁，都将lock设为true  \n    return old; //返回lock原来的值  \n}\n```","id":"64acffdd-5dec-441b-9e6c-cc3ab076257c","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":39,"page_size":[595,841],"block_position":"39-5"},{"bbox":[404,277,595,350],"type":"text","angle":0,"index":6,"text":"while（TestAndSet（&lock)）：//临界区代码段...lock $\\equiv$ false;剩余区代码段","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":39,"id":"f5d502ff-6ecc-492b-928d-5bb4af9bcd48","page_size":[595,841],"block_position":"39-6"},{"bbox":[98,436,215,521],"index":10,"angle":0,"type":"image","img_path":"/87681a05f95e006a4d625ee7c2df8e24a60b08c0de5eb25f2b588075839ac78c.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":39,"id":"0f867b03-3433-4668-b8c4-880594fbcc34","page_size":[595,841],"block_position":"39-7"},{"bbox":[258,474,373,521],"index":11,"angle":0,"type":"image","img_path":"/281038ce915aa6b108c92548eb1a89cc69b9dc913c7823c80f2fa3e7b1e6beec.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":39,"id":"49206c22-7e30-4a6f-8e0b-09a3ec2314a5","page_size":[595,841],"block_position":"39-8"},{"bbox":[102,550,394,687],"index":13,"angle":0,"type":"image","img_path":"/694a058f4e9470e497633f0d5ada2707aa889b5ad8c6f505d3af48508ad75066.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4907563025210084,"page_idx":39,"id":"b4295a05-aa82-43f9-ac2d-3392c2a54e0b","page_size":[595,841],"block_position":"39-9"}],[{"bbox":[101,112,210,162],"index":1,"angle":0,"type":"code","text":"```asm\nenter_region:  \n→TSL REGISTER,LOCK  \nCMP REGISTER,#0  \nJNE enter_region  \nRET\n```","id":"cad607b2-ebc5-4f5f-b97d-f796c124409b","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":40,"page_size":[595,841],"block_position":"40-0"},{"bbox":[265,121,390,164],"index":2,"angle":0,"type":"code","text":"```txt\n复制锁到寄存器并将锁设为1  \n锁是零吗？  \n若不是零，说明锁已被设置，返回调用者，进入了临界区\n```","id":"cfbce5c1-bc3a-40cd-b907-14680de3d1a1","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":40,"page_size":[595,841],"block_position":"40-1"},{"bbox":[101,181,185,211],"index":3,"angle":0,"type":"code","text":"```asm\nleave_region:  \nMOVE LOCK,#0  \nRET\n```","id":"8505532f-bae8-4382-8dbb-99c3eeaeb599","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":40,"page_size":[595,841],"block_position":"40-2"},{"bbox":[265,191,327,214],"index":4,"angle":0,"type":"code","text":"```txt\n在锁中存入0返回调用者\n```","id":"3808faff-68c0-4040-a2d5-12e85b4859ca","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":40,"page_size":[595,841],"block_position":"40-3"},{"bbox":[86,255,146,271],"type":"title","angle":0,"index":5,"text":"# 利用软件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":40,"id":"4f55bc6c-8725-452c-87be-56911306420c","page_size":[595,841],"block_position":"40-4"},{"bbox":[86,305,268,318],"type":"text","angle":0,"index":6,"text":"单标志、双标志先检查、双标志后检查","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"cef06849-8de9-4855-a35f-a6f34adb7c52","page_size":[595,841],"block_position":"40-5"},{"bbox":[86,321,299,334],"type":"text","angle":0,"index":7,"text":"进入区的检查、上锁操作无法一气呵成——锁","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"c11f005c-5daf-4489-b097-084d8f8ee03b","page_size":[595,841],"block_position":"40-6"},{"bbox":[86,352,151,364],"type":"text","angle":0,"index":8,"text":"Peterson 算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"f1278965-0917-478f-9fe2-e7433e9f398a","page_size":[595,841],"block_position":"40-7"},{"bbox":[86,368,232,380],"type":"text","angle":0,"index":9,"text":"有while循环，未遵循让权等待","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"51e638e1-68d4-4156-94e5-06ffa6fa7281","page_size":[595,841],"block_position":"40-8"},{"bbox":[87,403,159,420],"type":"title","angle":0,"index":10,"text":"# 信号量机制","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":40,"id":"2dcb40ed-338b-4aea-842d-0d89884a9977","page_size":[595,841],"block_position":"40-9"},{"bbox":[86,470,155,482],"type":"text","angle":0,"index":11,"text":"锁：mutexlock","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"ada53274-9449-476e-a4a5-fe72339faf6b","page_size":[595,841],"block_position":"40-10"},{"bbox":[86,486,261,498],"type":"text","angle":0,"index":12,"text":"只有 true 和 false 两种表示锁是否可用","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"d1c83846-79ab-4576-93a3-81c77514f2a8","page_size":[595,841],"block_position":"40-11"},{"bbox":[86,502,238,513],"type":"text","angle":0,"index":13,"text":"Aacquire 获得锁。Release 释放锁","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"9e88679e-759d-490c-991d-b15f2c22be36","page_size":[595,841],"block_position":"40-12"},{"bbox":[86,517,226,529],"type":"text","angle":0,"index":14,"text":"每个互斥锁都有一个布尔变量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"3d3e7544-08bd-4557-976c-a65dfd359208","page_size":[595,841],"block_position":"40-13"},{"bbox":[96,544,339,560],"type":"text","angle":0,"index":16,"text":"解决临界区最简单的工具就是互斥锁（mutexlock）。一个进程在进入临界区时应获得锁：在退出临界区时释放锁。函数acquire()获得锁，而函数release()释放锁。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"3c1578f3-b148-48e7-82e7-8b0e9bc25ed4","page_size":[595,841],"block_position":"40-14"},{"bbox":[96,560,340,574],"type":"text","angle":0,"index":17,"text":"每个互斥锁有一个布尔变量available，表示锁是否可用。如果锁是可用的，调用acqiureO会成功，且债不再可用。当一个进程试图获取不可用的锁时，会被阻塞，直到锁被释放。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"fa169865-2482-4a0d-bf0f-b83e8377bb2c","page_size":[595,841],"block_position":"40-15"},{"bbox":[97,574,342,629],"index":18,"angle":0,"type":"image","img_path":"/ac94d63523539f14089eca183a6745f7b8f87b74402243a75aecfa5ca4374061.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4117647058823529,"page_idx":40,"id":"b95841fc-26a3-4e6a-8047-c71e72627ad1","page_size":[595,841],"block_position":"40-16"},{"bbox":[108,630,317,637],"type":"text","angle":0,"index":19,"text":"acquire(或release()的执行必须是原子操作，因此互斥锁通常采用硬件机制来实现。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"88ca9a71-53a4-48e1-9130-e1e695932c66","page_size":[595,841],"block_position":"40-17"},{"bbox":[96,638,341,660],"type":"text","angle":0,"index":20,"text":"互斥锁的主要缺点是忙等待，当有一个进程在临界区中，任何其他进程在进入临界区时必须连续循环调用acquireO。当多个进程共享同一CPU时，就浪费了CPU周期。因此，互斥锁通常用于多处理器系统，一个线程可以在一个处理器上等待，不影响其他线程的执行。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"b528cef9-b7b4-48cb-a7c7-8428c711bbfd","page_size":[595,841],"block_position":"40-18"}],[{"bbox":[108,79,421,164],"index":0,"angle":0,"type":"image","img_path":"/5580701b62818b3ca43b08c6498c322a3feee1bd9b68d63379bc49533c31e99a.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5260504201680672,"page_idx":41,"id":"24f07147-462c-4302-9db6-b0efd83dd8c3","page_size":[595,841],"block_position":"41-0"},{"bbox":[88,188,122,200],"type":"title","angle":0,"index":1,"text":"# 信号量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":41,"id":"8affb3c5-e9d7-47b0-bfdb-44bad5ec2058","page_size":[595,841],"block_position":"41-1"},{"bbox":[105,203,185,216],"type":"text","angle":0,"index":2,"text":"P/down()wait（S）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"aad7d5d7-82c7-4676-bd38-4aef55f541be","page_size":[595,841],"block_position":"41-2"},{"bbox":[105,219,179,232],"type":"text","angle":0,"index":3,"text":"V/up()signal（S）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"26706b8c-ea17-46e5-9b0c-4099c84b2d65","page_size":[595,841],"block_position":"41-3"},{"bbox":[322,238,371,255],"type":"title","angle":0,"index":6,"text":"# 加曲阑干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":41,"id":"8c077dbc-a941-44e8-aaa8-ea093587794b","page_size":[595,841],"block_position":"41-4"},{"bbox":[116,263,353,286],"type":"text","angle":0,"index":7,"text":"Dijkstra提出了一个方法，用一个整型变量来记录唤醒次数，称作信号量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"a6586707-47b3-42a3-9002-e87450dd4ea0","page_size":[595,841],"block_position":"41-5"},{"bbox":[117,295,373,306],"type":"text","angle":0,"index":8,"text":"两种操作：分别为P操作和V操作，Proberen尝试，Verhogen(增加)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"f8694c6a-3113-4985-8f06-4c320451b652","page_size":[595,841],"block_position":"41-6"},{"bbox":[117,317,374,343],"type":"text","angle":0,"index":9,"text":"P：检查信号量的值是否大于0，若值大于0，则将其值减去1并继续如果该值为0，则进程睡眠","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"3c76f669-0865-4b59-8b7c-600085d0fe47","page_size":[595,841],"block_position":"41-7"},{"bbox":[116,359,202,370],"type":"text","angle":0,"index":10,"text":"V：对信号量的值加1。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"f0689a10-f206-4e5a-9f5a-773709c027e5","page_size":[595,841],"block_position":"41-8"},{"bbox":[105,437,235,449],"type":"title","angle":0,"index":11,"text":"# 原子操作：不可分割的操作","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":41,"id":"504bdee4-931f-4c9e-8b13-4029d805e9d7","page_size":[595,841],"block_position":"41-9"},{"bbox":[93,451,292,535],"index":12,"angle":0,"type":"image","img_path":"/ac352c5fd48e5ded570560bb7a1eb92dcd41a6dbc52637ae8a949b1faaf2ada8.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.334453781512605,"page_idx":41,"id":"ab05b96c-8a39-4f70-b334-64fccc899fd3","page_size":[595,841],"block_position":"41-10"},{"bbox":[88,577,270,591],"type":"title","angle":0,"index":13,"text":"# 原语是一种特殊的程序段，不可被中断","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":41,"id":"4d21ed3e-da56-4950-a98e-ddb164280452","page_size":[595,841],"block_position":"41-11"},{"bbox":[331,637,383,655],"type":"title","angle":0,"index":15,"text":"# 加曲闲干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":41,"id":"f4286c47-0a00-4624-a36c-fdb314f4e308","page_size":[595,841],"block_position":"41-12"},{"bbox":[110,666,229,677],"type":"text","angle":0,"index":16,"text":"如何实现不可分割的PV操作？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"d201028d-ab49-47c2-afc4-e74a45ebb2a2","page_size":[595,841],"block_position":"41-13"},{"bbox":[109,688,274,702],"type":"text","angle":0,"index":18,"text":"通常将P操作和V操作作为系统调用实现。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"290d7785-361c-4ddc-9366-a727ca2d7674","page_size":[595,841],"block_position":"41-14"},{"bbox":[108,711,375,724],"type":"text","angle":0,"index":19,"text":"具体操作：测试信号量、更新信号量以及需要时使某个进程睡眠","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"e66817db-b448-40b9-a0d6-524807fb6ed3","page_size":[595,841],"block_position":"41-15"},{"bbox":[109,734,377,747],"type":"text","angle":0,"index":20,"text":"对于单个CPU可以通过屏蔽中断，多个CPU可以通过TSL或Swap指令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"c945c75d-8dc6-4252-ba45-8b332964b6b6","page_size":[595,841],"block_position":"41-16"}],[{"bbox":[124,93,402,102],"type":"text","angle":0,"index":0,"text":"1.分析并发进程的关键活动，划定临界区（如：对临界资源打印机的访问就应放在临界区）","id":"a8b8710d-80af-47b4-a59a-1cb55bd47e90","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"page_size":[595,841],"block_position":"42-0"},{"bbox":[124,102,238,111],"type":"text","angle":0,"index":1,"text":"2.设置互斥信号量mutex，初值为1","id":"63ea555e-9bf2-4d56-b9c0-fd678e275a0d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"page_size":[595,841],"block_position":"42-1"},{"bbox":[298,106,405,249],"index":3,"angle":0,"type":"algorithm","text":"/*信号量机制实现互斥*/\nsemaphore mutex  $= 1$  ；//初始化信号量\nP1({ $\\begin{array}{l}\\cdots\\\\ \\mathrm{P}(\\mathrm{mutex});\\quad \\mathrm{//~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{\\sim}\\\\ \\mathrm{V}(\\mathrm{mutex});\\quad \\mathrm{//~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\mathrm{~}\\end{array}$  临界区代码段...}\n\t\t $\\cdots$  }","id":"a8fb11cf-b9f8-42e6-96ba-2fa736bb9b10","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"page_size":[595,841],"block_position":"42-2"},{"bbox":[129,276,216,297],"type":"title","angle":0,"index":4,"text":"# 理：售号量mutex表示“进入临界","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":42,"id":"e4ffafdf-d023-4186-a70e-3e661865eda1","page_size":[595,841],"block_position":"42-3"},{"bbox":[367,275,421,283],"type":"text","angle":0,"index":7,"text":"","id":"22f33f0c-81a0-4e86-8183-d2ef701555be","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"page_size":[595,841],"block_position":"42-4"},{"bbox":[374,284,406,290],"type":"text","angle":0,"index":8,"text":"int value;","id":"8d62b3e8-3d32-4547-b697-039224952521","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"page_size":[595,841],"block_position":"42-5"},{"bbox":[374,291,432,298],"type":"text","angle":0,"index":9,"text":"","id":"611d2f0a-2bee-444a-b349-2b73ff9ee3cb","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"page_size":[595,841],"block_position":"42-6"},{"bbox":[374,300,406,306],"type":"text","angle":0,"index":10,"text":"semaphore;","id":"a322bb87-f40b-44e0-a98c-51d64bf879da","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"page_size":[595,841],"block_position":"42-7"},{"bbox":[133,306,443,316],"type":"text","angle":0,"index":14,"text":"1.分析并发进程的关键活动，划定临界区（如：对临界资源打印机的访问就应放在临界区）","id":"0dd91a30-00c1-448e-a233-5f8afcb10bdd","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"page_size":[595,841],"block_position":"42-8"},{"bbox":[133,316,258,325],"type":"text","angle":0,"index":15,"text":"2.设置互斥信号量mutex，初值为1","id":"8c65d3d0-4e67-4928-a7b0-2cc8eef78276","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"page_size":[595,841],"block_position":"42-9"},{"bbox":[133,325,252,334],"type":"text","angle":0,"index":16,"text":"3.在进入区P（mutex）--申请资源","id":"8517f628-dd17-4835-90c0-b9faabbd0589","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"page_size":[595,841],"block_position":"42-10"},{"bbox":[133,334,251,343],"type":"text","angle":0,"index":17,"text":"4.在退出区V（mutex)--释放资源","id":"4aa65bf5-90ad-4589-b1a1-1e9e6fda0d35","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"page_size":[595,841],"block_position":"42-11"},{"bbox":[108,349,225,368],"type":"text","angle":0,"index":19,"text":"注意：对不同的临界资源需要设置不同的互斥信号量。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"584d4682-3f26-458f-8bdc-61fad76505aa","page_size":[595,841],"block_position":"42-12"},{"bbox":[108,368,226,378],"type":"text","angle":0,"index":20,"text":"P、V操作必须成对出现。缺少","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"30659f26-027b-4f80-84a9-06d610235d49","page_size":[595,841],"block_position":"42-13"},{"bbox":[108,378,226,387],"type":"text","angle":0,"index":21,"text":"P(mutex）就不能保证临界资源的互","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"c91548b1-2b00-4657-8a22-25aa84476605","page_size":[595,841],"block_position":"42-14"},{"bbox":[108,387,228,396],"type":"text","angle":0,"index":22,"text":"斥访问。缺少V（mutex）会导致资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"922ed6a4-a25b-41f7-a81a-c9c429eac651","page_size":[595,841],"block_position":"42-15"},{"bbox":[108,396,228,405],"type":"text","angle":0,"index":23,"text":"永不被释放，等待进程永不被唤醒。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"5c72fb9b-f04d-4027-b1da-255d28d24087","page_size":[595,841],"block_position":"42-16"},{"bbox":[258,343,315,400],"type":"text","angle":0,"index":24,"text":"要会自己定义记录型信号量，但如果题目中没特别说明，可以把信号量的声明简写成这种形式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"ef9f853e-ef97-4ba7-9d01-90f2dd089161","page_size":[595,841],"block_position":"42-17"},{"bbox":[334,361,367,371],"type":"text","angle":0,"index":26,"text":"P（mutex）；","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"47f023cd-fea4-405d-b2f8-1b686f6f50c6","page_size":[595,841],"block_position":"42-18"},{"bbox":[334,372,382,381],"type":"text","angle":0,"index":27,"text":"临界区代码段...","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"463d571f-7ee6-4346-8f21-340e272b7e86","page_size":[595,841],"block_position":"42-19"},{"bbox":[334,382,367,390],"type":"text","angle":0,"index":28,"text":"V（mutex）；","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"3283dcbe-179d-42f1-8042-ac1ac5a75625","page_size":[595,841],"block_position":"42-20"},{"bbox":[112,422,148,431],"type":"text","angle":0,"index":33,"text":"P(mutex1)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"66a2fc86-f875-4bc8-a8e9-f00e6dd46872","page_size":[595,841],"block_position":"42-21"},{"bbox":[116,433,141,443],"type":"text","angle":0,"index":34,"text":"临界区","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"aafbb6d6-ef28-435d-a8bb-d6503a0a742d","page_size":[595,841],"block_position":"42-22"},{"bbox":[116,444,148,452],"type":"text","angle":0,"index":35,"text":"（打印机）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"2ee5e193-3f3c-4dca-b64d-99f0a0737eb7","page_size":[595,841],"block_position":"42-23"},{"bbox":[115,454,148,462],"type":"text","angle":0,"index":36,"text":"V(mutex1)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"60cac6ee-6048-4fc5-87e9-37fc518d9d64","page_size":[595,841],"block_position":"42-24"},{"bbox":[159,423,192,432],"type":"text","angle":0,"index":37,"text":"P(mutex1)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"71a20fe2-ef6f-4e5b-9fdb-fe8db790ca0b","page_size":[595,841],"block_position":"42-25"},{"bbox":[161,433,188,443],"type":"text","angle":0,"index":38,"text":"临界区","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"bc7ece2f-cb84-4549-8ec7-04e01258c7c7","page_size":[595,841],"block_position":"42-26"},{"bbox":[161,444,192,452],"type":"text","angle":0,"index":39,"text":"（打印机）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"690a0cc3-c12a-4efa-bc4a-9c773889de30","page_size":[595,841],"block_position":"42-27"},{"bbox":[161,454,192,462],"type":"text","angle":0,"index":40,"text":"V(mutex1)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"bfd883eb-4a5e-4673-9e5a-b9ec13202859","page_size":[595,841],"block_position":"42-28"},{"bbox":[133,474,143,483],"type":"text","angle":0,"index":41,"text":"进程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"65d24631-06a8-45d9-8131-3c10ccffe02c","page_size":[595,841],"block_position":"42-29"},{"bbox":[163,474,188,483],"type":"text","angle":0,"index":42,"text":"P2进程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"0834e555-a1e5-46d3-974a-14ffdd225ce0","page_size":[595,841],"block_position":"42-30"},{"bbox":[227,423,261,432],"type":"text","angle":0,"index":43,"text":"P(mutex2)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"e2f30dff-a23a-4f01-8439-5774d3acc196","page_size":[595,841],"block_position":"42-31"},{"bbox":[228,433,254,442],"type":"text","angle":0,"index":44,"text":"临界区","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"7b4b9457-d1cf-42ba-ae0b-869af77473c8","page_size":[595,841],"block_position":"42-32"},{"bbox":[228,443,261,451],"type":"text","angle":0,"index":45,"text":"（摄像头）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"a9af928d-e43d-428d-a7e1-a75c8aaa3b32","page_size":[595,841],"block_position":"42-33"},{"bbox":[227,453,261,462],"type":"text","angle":0,"index":46,"text":"V(mutex2)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"738d2a56-7979-462b-b725-72ad4e6b219d","page_size":[595,841],"block_position":"42-34"},{"bbox":[271,423,304,432],"type":"text","angle":0,"index":47,"text":"P(mutex2)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"a8cee44a-ddb6-4d99-a7af-2340add76f32","page_size":[595,841],"block_position":"42-35"},{"bbox":[271,433,303,442],"type":"text","angle":0,"index":48,"text":"临界区","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"6ddcd1f1-7030-49ce-888f-dc4316a63710","page_size":[595,841],"block_position":"42-36"},{"bbox":[271,443,303,451],"type":"text","angle":0,"index":49,"text":"（摄像头）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"af9b4057-a6eb-4999-b567-529610ad496c","page_size":[595,841],"block_position":"42-37"},{"bbox":[271,453,304,462],"type":"text","angle":0,"index":50,"text":"V(mutex2)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"8859dd1f-f8fc-4e25-89ca-bca9ead9cde0","page_size":[595,841],"block_position":"42-38"},{"bbox":[232,475,256,483],"type":"text","angle":0,"index":51,"text":"P3进程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"dc99fabe-cd2e-47f7-82f1-d1e510ada312","page_size":[595,841],"block_position":"42-39"},{"bbox":[275,475,300,483],"type":"text","angle":0,"index":52,"text":"P4进程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"a8f1622c-2cd1-490a-aaf6-a35e4ae90746","page_size":[595,841],"block_position":"42-40"},{"bbox":[334,440,367,449],"type":"text","angle":0,"index":55,"text":"P（mutex）;临界区代码","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"f9c666ce-15f8-4320-a415-b69689493476","page_size":[595,841],"block_position":"42-41"},{"bbox":[334,451,367,460],"type":"text","angle":0,"index":56,"text":"V（mutex）：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"89668033-1ee7-462c-bbb4-32c2ba3baf27","page_size":[595,841],"block_position":"42-42"},{"bbox":[327,464,346,478],"type":"text","angle":0,"index":57,"text":"1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"40e1c399-78a7-4875-b71b-7e52467a1204","page_size":[595,841],"block_position":"42-43"},{"bbox":[105,499,319,513],"type":"text","angle":0,"index":58,"text":"信号量背后的含义，一个信号量对应一种资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"e300a924-e3c3-433f-a092-0947e92875af","page_size":[595,841],"block_position":"42-44"},{"bbox":[105,515,381,528],"type":"text","angle":0,"index":59,"text":"用户可以通过操作系统提供的一对原语来对信号量进行操作","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"63dc57af-177c-469d-ba37-49aff5eaefa9","page_size":[595,841],"block_position":"42-45"},{"bbox":[105,530,329,543],"type":"text","angle":0,"index":60,"text":"信号量可以是整型、记录型、AND型、信号量集","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"8d89c97b-94b2-41f4-8c49-3e074e94627d","page_size":[595,841],"block_position":"42-46"},{"bbox":[105,546,260,559],"type":"text","angle":0,"index":61,"text":"信号量的值 $\\mathbf { \\lambda } = \\mathbf { \\lambda }$ 这种资源的剩余数量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"ece629f4-9118-4bb1-a09e-57e5f58b4694","page_size":[595,841],"block_position":"42-47"},{"bbox":[105,562,403,575],"type":"text","angle":0,"index":62,"text":"P(S)/down()/wait()——申请一个资源S，如果资源不够就阻塞等待","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"dbd481f9-f4fc-4f04-b900-27621d175300","page_size":[595,841],"block_position":"42-48"},{"bbox":[105,577,464,591],"type":"text","angle":0,"index":63,"text":"V(S)/up()/signal——释放一个资源S，如果有进程在等待该资源则唤醒一个进程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"22b04590-a00f-446f-b9a6-93e28bf4679c","page_size":[595,841],"block_position":"42-49"},{"bbox":[105,593,220,607],"type":"text","angle":0,"index":64,"text":"一对原语 wait(S)/signal(S)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"45dbf3b1-bca6-4566-84f0-335d4771a068","page_size":[595,841],"block_position":"42-50"},{"bbox":[105,624,288,638],"type":"text","angle":0,"index":65,"text":"整形信号量：只有三种，初始化、P、V","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"5feb3335-5d31-4904-9c19-92ac5d7de954","page_size":[595,841],"block_position":"42-51"},{"bbox":[105,640,402,653],"type":"text","angle":0,"index":66,"text":"一个整数型的变量作为信号量，用来表示系统中某种资源的数量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"f5acd1ad-ee83-4256-b01f-a6eaa6822015","page_size":[595,841],"block_position":"42-52"},{"bbox":[94,663,431,677],"type":"text","angle":0,"index":67,"text":"$\\textsf { S } = \\textsf { 1 }$","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"d240c3d3-d0f1-4dbf-8a66-7a3447d2945e","page_size":[595,841],"block_position":"42-53"},{"bbox":[105,707,196,724],"type":"text","angle":0,"index":69,"text":"$S < = 8$ ）；","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"260549e3-a9f0-4de0-8869-99e6f7cc6a5f","page_size":[595,841],"block_position":"42-54"},{"bbox":[105,724,142,734],"type":"text","angle":0,"index":70,"text":"S=S-1;","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"9f460472-435a-41de-964e-5e4678dd73bf","page_size":[595,841],"block_position":"42-55"},{"bbox":[105,780,142,791],"type":"text","angle":0,"index":76,"text":"S=S+1;","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"482d5ba0-c5bb-4a15-8c4f-af6426d21321","page_size":[595,841],"block_position":"42-56"},{"bbox":[94,794,101,802],"type":"text","angle":0,"index":78,"text":"1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"07e48e77-c9c1-4383-9aa9-315768e5f5d2","page_size":[595,841],"block_position":"42-57"}],[{"bbox":[134,143,176,157],"type":"text","angle":0,"index":0,"text":"进程P0：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"a703e12d-c480-4df4-baae-255210ac19e0","page_size":[595,841],"block_position":"43-0"},{"bbox":[138,173,189,185],"type":"text","angle":0,"index":2,"text":"wait(s)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"85aa6932-e86c-4aee-95ce-42361b943672","page_size":[595,841],"block_position":"43-1"},{"bbox":[138,187,224,200],"type":"text","angle":0,"index":4,"text":"使用打印机资源...","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"c984a1fd-99bf-4913-9441-59efc12bcd4d","page_size":[595,841],"block_position":"43-2"},{"bbox":[104,234,392,248],"type":"text","angle":0,"index":9,"text":"用原语实现了，“检查”和“上锁”解决了并发、异步的问题","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"604c9ba3-c925-4096-bf90-f548ee60e272","page_size":[595,841],"block_position":"43-3"},{"bbox":[105,250,326,263],"type":"text","angle":0,"index":10,"text":"Wait原语又不能被中断。难道CPU卡在哪里了？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"fb1e0910-4952-4284-a61f-06ffeb93104b","page_size":[595,841],"block_position":"43-4"},{"bbox":[106,266,171,279],"type":"text","angle":0,"index":11,"text":"记录型信号量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"731e16e9-80bf-4c83-a473-57ad2fa92185","page_size":[595,841],"block_position":"43-5"},{"bbox":[118,279,265,332],"index":12,"angle":0,"type":"code","text":"```c\n/*记录型信号量的定义*/  \ntypedef struct {int value; //剩余资源数struct process \\*L; //等待队列}semaphore;\n```","id":"f03c4eeb-f382-49f9-bfe6-955108c19195","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":43,"page_size":[595,841],"block_position":"43-6"},{"bbox":[118,346,289,416],"index":13,"angle":0,"type":"code","text":"```txt\n/*某进程需要使用资源时，通过wait原语申请*/  \nvoid wait(semaphore S){S.value--;if(S.value<0）{block(S.L);}如果剩余资源数不够，  \n1 使用block原语使进程从\n```","id":"6f3dcfea-a1dc-4ca9-8232-bde473e3e252","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":43,"page_size":[595,841],"block_position":"43-7"},{"bbox":[309,345,467,417],"index":14,"angle":0,"type":"code","text":"```javascript\n/*进程使用完资源后，通过signal 原语释放*/  \nvoid signal (semaphore S) {  \n    s.value++;  \n    if (s.value <= 0) {  \n        wakeup(S.L);  \n    }  \n}\n```","id":"c02b2e63-b181-45d8-9fed-11bd0cf89d7c","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":43,"page_size":[595,841],"block_position":"43-8"},{"bbox":[86,484,132,497],"type":"text","angle":0,"index":16,"text":"wait 原语","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"0883437d-dbda-4152-979c-96ae4b2ff6e5","page_size":[595,841],"block_position":"43-9"},{"bbox":[86,500,192,512],"type":"text","angle":0,"index":17,"text":"某进程需要使用资源S","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"be25613c-fd69-4872-8266-c0d107a527bd","page_size":[595,841],"block_position":"43-10"},{"bbox":[86,515,207,528],"type":"text","angle":0,"index":18,"text":"S--表示请求分配一个资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"dcc9c453-832a-4d5e-b5d2-e865c01fd814","page_size":[595,841],"block_position":"43-11"},{"bbox":[86,530,423,544],"type":"text","angle":0,"index":19,"text":"如果S值 $\\geqslant 0$ ，则表示可以为进程分配资源，该进程进入临界区继续执行，","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"8cdd4ede-2029-4cc5-838c-1196c2fae3e3","page_size":[595,841],"block_position":"43-12"},{"bbox":[86,546,345,560],"type":"text","angle":0,"index":20,"text":"如果 S 的值 $< 0$ ，表示-1 之前已没有资源可供分配（ $\\scriptstyle \\left( S = 0 \\right)$ ）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"dbe018ae-f3ff-4b2d-98b2-2b5a625af07d","page_size":[595,841],"block_position":"43-13"},{"bbox":[86,562,462,575],"type":"text","angle":0,"index":21,"text":"执行block原语，将其进程阻塞起来，插入到S的阻塞队列中，然后执行另一进程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"a3c1930c-d92c-4ecd-96fa-6f0f3eae7d4c","page_size":[595,841],"block_position":"43-14"},{"bbox":[87,578,116,590],"type":"text","angle":0,"index":22,"text":"Signal","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"cec5ef91-ca5f-4a31-8d54-f908a9d34ae1","page_size":[595,841],"block_position":"43-15"},{"bbox":[86,593,190,606],"type":"text","angle":0,"index":23,"text":"${ { \\sf S } } { + } { + }$ 表明释放一个资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"a1e3e59c-3797-4880-81bd-a2eb63c9f67a","page_size":[595,841],"block_position":"43-16"},{"bbox":[86,608,338,622],"type":"text","angle":0,"index":24,"text":"如果 $\\mathsf { S } { \\mathsf { \\Sigma } } { > } 0$ ，则表示阻塞队列为空，该进程继续执行；；","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"b48046b9-54f4-4c95-9c89-7ed34025c534","page_size":[595,841],"block_position":"43-17"},{"bbox":[86,624,504,652],"type":"text","angle":0,"index":25,"text":"如果S≤0，表示阻塞队列中有阻塞的进程，wakeup原语唤醒队首进程从阻塞状态变为就绪状态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"1ea856a5-c0be-423a-aedd-fe09a5daef42","page_size":[595,841],"block_position":"43-18"},{"bbox":[86,655,341,668],"type":"text","angle":0,"index":26,"text":"不管怎么说，先--或者 $^ { + + }$ ，然后判断，决定阻塞or释放","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"714f061b-ef9f-4fec-a2e1-b29ad89a5a2a","page_size":[595,841],"block_position":"43-19"},{"bbox":[86,671,273,683],"type":"text","angle":0,"index":27,"text":"$\\mathsf { S } { \\circ } 0$ ，其值表示当前可供分配的资源数目","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"f39051ca-a953-4e09-bb6e-c2146dfbd361","page_size":[595,841],"block_position":"43-20"},{"bbox":[86,687,282,699],"type":"text","angle":0,"index":28,"text":"$\\mathsf { S } { < } 0$ ，其绝对值表示阻塞队列中的进程数目","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"3594fec1-0d33-4cda-8325-afd313e7b239","page_size":[595,841],"block_position":"43-21"},{"bbox":[87,702,153,714],"type":"text","angle":0,"index":29,"text":"信号量集机制","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"24d9fae2-2a2d-4c21-acaa-197237950198","page_size":[595,841],"block_position":"43-22"},{"bbox":[105,734,224,746],"type":"text","angle":0,"index":30,"text":"信号量机制实现进程互斥","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"57c07a0a-46a1-472f-9198-18062219b7e6","page_size":[595,841],"block_position":"43-23"},{"bbox":[105,749,411,761],"type":"text","angle":0,"index":31,"text":"如果题目没有特别说明，对于一个信号量的定义只需要 semaphore","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"368526d5-f721-4834-a417-7ff3df1a9992","page_size":[595,841],"block_position":"43-24"}],[{"bbox":[104,79,504,107],"type":"text","angle":0,"index":0,"text":"smaphore这个信号量不是整型信号量而是记录型信号量，带有排队阻塞的信号量，并不会忙等","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"a0f8ce36-d170-4e21-9eaf-23ea7ac24d1d","page_size":[595,841],"block_position":"44-0"},{"bbox":[105,110,308,122],"type":"text","angle":0,"index":1,"text":"对于不同的临界资源需要设置不同的信号量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"209704ca-14f4-4437-844f-b3837fc8e7fc","page_size":[595,841],"block_position":"44-1"},{"bbox":[105,125,413,138],"type":"text","angle":0,"index":2,"text":"利用信号量机制可以方便地解决多个进程互斥使用临界资源的问题","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"09d004af-4ab7-4cea-ac6e-007e58a08662","page_size":[595,841],"block_position":"44-2"},{"bbox":[86,157,332,170],"type":"title","angle":0,"index":3,"text":"# 生产者/操作 必须在谁之后执行 依赖的信号量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":44,"id":"546735b4-0201-40ee-9ed0-561a6c1ce1e1","page_size":[595,841],"block_position":"44-3"},{"bbox":[87,174,287,186],"type":"text","angle":0,"index":4,"text":"PB 读取 buf1 PA 写完 buf1 full1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"346e7996-ac41-481b-9466-c60a41653447","page_size":[595,841],"block_position":"44-4"},{"bbox":[87,191,287,203],"type":"text","angle":0,"index":5,"text":"PC 打印 buf2 PB 写完 buf2 full2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"8cbbde0f-646a-443d-ae8b-5bedd9c8bb11","page_size":[595,841],"block_position":"44-5"},{"bbox":[87,209,301,221],"type":"text","angle":0,"index":6,"text":"PA 写 buf1 上一次 PB 读取完 buf1 empty1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"994731b7-2288-4dc3-87a4-aff32572beef","page_size":[595,841],"block_position":"44-6"},{"bbox":[87,226,301,238],"type":"text","angle":0,"index":7,"text":"PB 写 buf2 上一次 PC 打印完 buf2 empty2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"1429f773-0a90-4bcb-9e52-59c9d2726038","page_size":[595,841],"block_position":"44-7"},{"bbox":[87,276,221,291],"type":"title","angle":0,"index":8,"text":"# 信号量机制实现进程同步","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":44,"id":"d99ffcbd-296d-44f4-b0fc-7b4d8b680fdd","page_size":[595,841],"block_position":"44-8"},{"bbox":[105,309,265,322],"type":"title","angle":0,"index":9,"text":"# 要让各并发进程按要求有序地推进","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":44,"id":"4574d93e-1265-49d5-92f5-9ec20ecb9028","page_size":[595,841],"block_position":"44-9"},{"bbox":[105,326,238,338],"type":"text","angle":0,"index":10,"text":"设置同步信号量S，初始为0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"5f7d0a82-7568-4a54-9501-5d49b3b1d889","page_size":[595,841],"block_position":"44-10"},{"bbox":[129,342,221,352],"type":"text","angle":0,"index":11,"text":"用信号量实现进程同步：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"d84d54e8-2671-423d-9286-2a7cf95d6085","page_size":[595,841],"block_position":"44-11"},{"bbox":[129,353,504,363],"type":"text","angle":0,"index":12,"text":"1.分析什么地方需要实现“同步关系”，即必须保证“一前一后”执行的两个操作（或两句代码）","id":"c7a7d1b0-cb70-485f-a0ca-3eb877d53582","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-12"},{"bbox":[129,364,248,373],"type":"text","angle":0,"index":13,"text":"2.设置同步信号量S,初始为0","id":"ece70e7c-7549-448e-9548-940067dabb9d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-13"},{"bbox":[129,374,248,384],"type":"text","angle":0,"index":14,"text":"3.在“前操作”之后执行V（S）","id":"6d18e2c3-0697-473a-b8ac-fca7fb4b1f68","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-14"},{"bbox":[129,384,248,395],"type":"text","angle":0,"index":15,"text":"4.在“后操作”之前执行P（S）","id":"5f1da022-e1d4-4925-bbb4-11a6cb2a8c85","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-15"},{"bbox":[135,417,338,428],"type":"text","angle":0,"index":18,"text":"semaphoreS=0；//初始化同步信号量，初始值为0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"149f6c88-4b83-4cf0-a96c-6736e2d5bdf8","page_size":[595,841],"block_position":"44-16"},{"bbox":[361,384,471,426],"type":"text","angle":0,"index":19,"text":"理解：信号量s代表“某种资源”，刚开始是没有这种资源的。P2需要使用这种资源，而又只能由P1产生这种资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"ce1d21cd-7a7c-495d-866f-21fb7019c6cb","page_size":[595,841],"block_position":"44-17"},{"bbox":[134,439,262,514],"index":20,"angle":0,"type":"image","img_path":"/4c7d4a5999c000e46ad370c4569f8db42cbd65273afdf48dc2cddb1cb3c3b2be.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.21512605042016808,"page_idx":44,"id":"9ceb625b-8859-4534-b405-50c07d6b46bf","page_size":[595,841],"block_position":"44-18"},{"bbox":[120,521,270,533],"index":21,"angle":0,"type":"image_caption","text":"保证了代码4一定是在代码2之后执行","id":"6c5c4b4a-d144-4282-8eb2-b9bac2a2ce19","color":{"line":"rgba(13, 83, 222 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-19"},{"bbox":[278,437,513,469],"type":"text","angle":0,"index":22,"text":"若先执行到V（S）操作，则 ${ \\mathsf { S } } { \\mathsf { + } } { \\mathsf { + } }$ 后S=1。之后当执行到P(S）操作时，由于S=1，表示有可用资源，会执行S-，S的值变回0，P2进程不会执行block原语，而是继续往下执行代码4。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"b633e732-d5c1-4363-b3dd-0c0fb8defe84","page_size":[595,841],"block_position":"44-20"},{"bbox":[278,478,512,542],"type":"text","angle":0,"index":23,"text":"若先执行到P(S)操作，由于S=O，S--后S=-1，表示此时没有可用资源，因此P操作中会执行block原语，主动请求阻塞。之后当执行完代码2，继而执行V(S)操作，S++，使S变回0，由于此时有进程在该信号量对应的阻塞队列中，因此会在V操作中执行wakeup原语，唤醒P2进程。这样P2就可以继续执行代码4了","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"11856eaf-53fd-44af-abfb-aa8f6e67ff17","page_size":[595,841],"block_position":"44-21"},{"bbox":[105,575,349,587],"type":"text","angle":0,"index":24,"text":"首先可以定义一个初值为1的信号量S（互斥信号量）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"e92d74ce-cc94-4ad7-bab5-764e9618456a","page_size":[595,841],"block_position":"44-22"},{"bbox":[105,590,399,602],"type":"text","angle":0,"index":25,"text":"当进程想要进入临界区访问临界资源时，wait（）操作申请资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"6ac963f6-15f1-43f8-8df9-d4b39f4d8e30","page_size":[595,841],"block_position":"44-23"},{"bbox":[105,605,305,618],"type":"text","angle":0,"index":26,"text":"退出临界区时执行signal操作（）释放资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"b7484024-57f5-400d-b9a3-c99dd90b208d","page_size":[595,841],"block_position":"44-24"},{"bbox":[105,621,402,634],"type":"text","angle":0,"index":27,"text":"只要把进程临界区置于 wait（）和 siganl()之间，就可以实现互斥","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"5046e1fd-bad2-43c7-a912-a99991e85ff4","page_size":[595,841],"block_position":"44-25"}],[{"bbox":[116,83,248,98],"type":"text","angle":0,"index":0,"text":"该方案使用了三个信号量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"1718f456-4371-4368-b781-603be56996e7","page_size":[595,841],"block_position":"45-0"},{"bbox":[116,102,367,116],"type":"text","angle":0,"index":1,"text":"1.一个称为fuI1，用来记录充满的缓冲区的数量","id":"9e9d4edc-0822-4570-9b5c-c7bfccf13ad2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"page_size":[595,841],"block_position":"45-1"},{"bbox":[116,121,324,135],"type":"text","angle":0,"index":2,"text":"2.一个称为empty，记录空的缓冲区数目","id":"2c74b4ad-cb41-46f2-bec4-3c3d0da49884","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"page_size":[595,841],"block_position":"45-2"},{"bbox":[116,140,454,154],"type":"text","angle":0,"index":3,"text":"3.一个称为mutex，用来确保生产者和消费者不会同时访问缓冲区","id":"32f3eeb6-dd2a-4d12-856b-135cb5375993","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"page_size":[595,841],"block_position":"45-3"},{"bbox":[121,166,173,176],"type":"text","angle":0,"index":5,"text":"#defineN100","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"bc14d373-b1d5-4b40-a6b7-4f09b76450f1","page_size":[595,841],"block_position":"45-4"},{"bbox":[121,177,204,185],"type":"text","angle":0,"index":7,"text":"typedef int semaphore;","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"93d2846a-40b4-4239-8da6-1cb97a2972d3","page_size":[595,841],"block_position":"45-5"},{"bbox":[121,186,202,194],"type":"text","angle":0,"index":9,"text":"semaphoremutex $= 1$","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"20ac8d39-6e0c-4a88-9a12-c1042e69e3ca","page_size":[595,841],"block_position":"45-6"},{"bbox":[121,195,204,204],"type":"text","angle":0,"index":11,"text":"semaphore empty=N;","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"291bfb6b-2a6e-4012-ae28-41a333235c16","page_size":[595,841],"block_position":"45-7"},{"bbox":[121,205,192,214],"type":"text","angle":0,"index":13,"text":"semaphore full=0;","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"8f20a23f-a820-412b-96b8-f257e8a0979b","page_size":[595,841],"block_position":"45-8"},{"bbox":[105,234,278,248],"type":"text","angle":0,"index":15,"text":"为什么 empty 和 full 也要设为信号量？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"e3e91b25-e855-4ac7-8178-25433ba0b370","page_size":[595,841],"block_position":"45-9"},{"bbox":[116,249,423,553],"index":16,"angle":0,"type":"algorithm","text":"void producer(void)   \n{ int item; while (TRUE){ /\\*TRUE是常量1\\*/ item  $\\equiv$  produce_item(); /\\*产生放在缓冲区中的一些数据\\*/ down(&empty); /\\*将空槽数目减1\\*/ 0  $\\rightarrow$  down(&mutex); /\\*进入临界区\\*/ insert_item(item); /\\*将新数据项放到缓冲区中\\*/ up(&mutex);  $\\rightarrow$  V(mutex); /\\*离开临界区\\*/ up(&full); /\\*将满槽的数目加1\\*/ }   \nvoid consumer(void) full>0 full-1 int item; while (TRUE){ /\\*无限循环\\*/ down(&full); /\\*将满槽数目减1\\*/ down(&mutex); /\\*进入临界区\\*/ item  $\\equiv$  remove_item(); /\\*从缓冲区中取出数据项\\*/ up(&mutex); /\\*离开临界区\\*/ up(&empty); /\\*将空槽数目加1\\*/ consume_item(item); /\\*处理数据项\\*/ 1","id":"a0a2f613-459c-4b5a-947a-fefcce65734f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"page_size":[595,841],"block_position":"45-10"},{"bbox":[105,561,149,575],"type":"text","angle":0,"index":17,"text":"不能相反","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"0255b47f-136a-480b-9895-ae2abfe7e93e","page_size":[595,841],"block_position":"45-11"},{"bbox":[105,577,160,590],"type":"text","angle":0,"index":18,"text":"会导致死锁","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"9b87772d-f461-45fd-956a-8dc8a5472647","page_size":[595,841],"block_position":"45-12"},{"bbox":[105,594,150,607],"type":"text","angle":0,"index":19,"text":"Mutex $^ { = 0 }$ ；","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"4c34eebd-ba40-42ff-9e8c-2c2cead13577","page_size":[595,841],"block_position":"45-13"},{"bbox":[105,609,195,622],"type":"text","angle":0,"index":20,"text":"Producer 会被阻塞；","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"94f0f60c-91cb-43c3-b855-cf5a4d116b6d","page_size":[595,841],"block_position":"45-14"},{"bbox":[105,624,281,637],"type":"text","angle":0,"index":21,"text":"Consumer 发现 mutex=0，也会被阻塞。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"671260e6-3355-4197-9624-e58b80cce880","page_size":[595,841],"block_position":"45-15"}],[{"bbox":[115,84,238,101],"type":"title","angle":0,"index":0,"text":"# 信号量同步的缺点","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":46,"id":"1f03011b-eba9-4286-aeb1-9e8803081c11","page_size":[595,841],"block_position":"46-0"},{"bbox":[342,84,394,101],"type":"title","angle":0,"index":2,"text":"# 九曲闲干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":46,"id":"fee103a4-6145-45ce-930e-8621fd899835","page_size":[595,841],"block_position":"46-1"},{"bbox":[127,130,351,158],"type":"text","angle":0,"index":4,"text":"同步操作分散在各个进程中，使用不当就可能导致进程死锁例如：P、V操作的次序错误、重复或遗漏","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"f7c2202c-ad19-404c-8869-df603f44897f","page_size":[595,841],"block_position":"46-2"},{"bbox":[127,187,376,214],"type":"text","angle":0,"index":6,"text":"想要了解对于一组共享变量以及信号量的操作是否正确，需要阅读整个并发程序的代码","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"5f14e4e9-6569-4499-b1a0-13745f0fa82e","page_size":[595,841],"block_position":"46-3"},{"bbox":[88,270,202,287],"type":"title","angle":0,"index":7,"text":"# 经典进程同步问题","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":46,"id":"b5e1d5aa-8675-4ee7-bb48-9b499a13b5e6","page_size":[595,841],"block_position":"46-4"},{"bbox":[88,327,202,344],"type":"title","angle":0,"index":8,"text":"# 生产者消费者问题","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":46,"id":"12ad6a92-31ef-4802-8bab-d0327a3eb8e0","page_size":[595,841],"block_position":"46-5"},{"bbox":[88,378,143,391],"type":"text","angle":0,"index":9,"text":"M个生产者","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"92c94595-9b8f-4543-9cd5-90f295c37fda","page_size":[595,841],"block_position":"46-6"},{"bbox":[88,394,141,407],"type":"text","angle":0,"index":10,"text":"N个消费者","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"a2869ed0-e4be-494e-9851-b22ee835767b","page_size":[595,841],"block_position":"46-7"},{"bbox":[88,409,267,423],"type":"text","angle":0,"index":11,"text":"共享一个具有k个缓冲区的循环缓冲池","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"f57ec20b-7230-4d35-9f8d-f4f935651b11","page_size":[595,841],"block_position":"46-8"},{"bbox":[88,424,472,438],"type":"text","angle":0,"index":12,"text":"生产者不断生产产品，将每个产品依次放入缓冲区中（一个缓冲区正好放一个产品）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"02b8a782-2cd6-4fd9-9742-0c884f5e84e7","page_size":[595,841],"block_position":"46-9"},{"bbox":[88,440,504,469],"type":"text","angle":0,"index":13,"text":"消费者依次从缓冲区取出产品并进行消费。规定消费者不能从一个空缓冲区中取产品，生产者不能向一个已装满产品且尚未被取走的缓冲区中投放产品。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"db9cdbcf-1c3e-4676-a0c5-cf894e767bfd","page_size":[595,841],"block_position":"46-10"},{"bbox":[88,472,217,485],"type":"text","angle":0,"index":14,"text":"什么时候用数字 out in $\\scriptstyle 1 = 0$ ，1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"dc1d49ab-1298-45bf-af24-4fb0397b1b38","page_size":[595,841],"block_position":"46-11"},{"bbox":[88,487,272,500],"type":"text","angle":0,"index":15,"text":"什么时候用信号量 mutex ，Empty，full？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"408a7d3a-ad3d-4166-a8e0-74f1c82e5ce2","page_size":[595,841],"block_position":"46-12"}],[{"bbox":[87,73,424,334],"index":0,"angle":0,"type":"image","img_path":"/d53299196877c163a349495f6913a53f02effa544db7c6be5512f0ef85b238c3.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5663865546218487,"page_idx":47,"id":"b1ca3588-16d9-463a-b909-4f0c6cb2b8c4","page_size":[595,841],"block_position":"47-0"},{"bbox":[126,343,406,357],"type":"text","angle":0,"index":1,"text":"1、 count $\\mathbf { \\Phi } = \\mathbf { 1 }$ 时唤醒消费者，保证至少有一个元素可消费；","id":"81be0352-008a-411b-b007-a9d13fbab5be","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"page_size":[595,841],"block_position":"47-1"},{"bbox":[126,359,382,373],"type":"text","angle":0,"index":2,"text":"2、 count $\\mathrel { = } \\Nu { - } 1$ 时唤醒生产者，保证有一个空位可写；","id":"ccac841e-7cfc-4f0f-a848-d7567be6a853","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"page_size":[595,841],"block_position":"47-2"},{"bbox":[106,375,182,387],"type":"text","angle":0,"index":4,"text":"当前缓冲区已空","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"6ae4140e-4bb8-4beb-8400-3b04394fee8c","page_size":[595,841],"block_position":"47-3"},{"bbox":[105,391,266,403],"type":"text","angle":0,"index":5,"text":"消费者去执行的时候发现 coun $\\scriptstyle = = 0$","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"b6eac790-0b43-4463-86c3-c1c81084a5ea","page_size":[595,841],"block_position":"47-4"},{"bbox":[105,406,313,419],"type":"text","angle":0,"index":6,"text":"但是调度程序切换到了生产者，发现 count $^ { : = 1 }$","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"77085308-433e-4d85-8040-4bb0f84d167b","page_size":[595,841],"block_position":"47-5"},{"bbox":[105,422,238,435],"type":"text","angle":0,"index":7,"text":"生产者向消费者发送 wakeup","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"088a246b-172f-47ed-8267-b379ccd98209","page_size":[595,841],"block_position":"47-6"},{"bbox":[105,437,264,450],"type":"text","angle":0,"index":8,"text":"消费者还没来得及 sleep 却 wakeup","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"b0f5cecb-7f76-4fb4-9af1-e88671326bdf","page_size":[595,841],"block_position":"47-7"},{"bbox":[105,453,243,465],"type":"text","angle":0,"index":9,"text":"丢失唤醒（lost wakeup）问题","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"5e5b898d-fea7-4618-850f-7ae8b33a01ca","page_size":[595,841],"block_position":"47-8"},{"bbox":[105,465,390,613],"index":10,"angle":0,"type":"image","img_path":"/9bed2fec71ac2c69761a8736fc468bc947966713f6b444a5134501ab134811c1.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4789915966386555,"page_idx":47,"id":"f606bf3c-dc46-4f16-bafc-487141869536","page_size":[595,841],"block_position":"47-9"},{"bbox":[105,624,186,638],"type":"text","angle":0,"index":11,"text":"最后消费者 sleep","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"737bfa80-97a4-405e-8b8a-2305d664e8f3","page_size":[595,841],"block_position":"47-10"},{"bbox":[105,640,186,653],"type":"text","angle":0,"index":12,"text":"生产者也 sleep 了","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"825cfa99-7be7-4461-a1c7-661ff78e6097","page_size":[595,841],"block_position":"47-11"},{"bbox":[105,655,181,668],"type":"text","angle":0,"index":13,"text":"可以设置等待位","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"32c762c6-29ad-41e2-acdc-56f5d50e9f8c","page_size":[595,841],"block_position":"47-12"},{"bbox":[105,671,150,684],"type":"text","angle":0,"index":14,"text":"但是麻烦","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"73450e37-9178-4333-a182-e5f9870e7d48","page_size":[595,841],"block_position":"47-13"}],[{"bbox":[88,84,178,101],"type":"title","angle":0,"index":0,"text":"# 读者-写者问题","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":48,"id":"ab0ef4a1-0b08-432b-8fad-b7dfbc02e6ca","page_size":[595,841],"block_position":"48-0"},{"bbox":[105,135,256,148],"type":"text","angle":0,"index":1,"text":"多个进程同时读数据库是可以的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"c1d26c26-5f35-49f4-ae6c-d558248d17cb","page_size":[595,841],"block_position":"48-1"},{"bbox":[105,151,359,164],"type":"text","angle":0,"index":2,"text":"当一个进程正在写数据库，其它进程既不能读也不能写","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"52cc70e5-0ee9-4b8d-8053-50491f4b4bb2","page_size":[595,841],"block_position":"48-2"},{"bbox":[106,167,244,179],"type":"text","angle":0,"index":3,"text":"任意时刻只能由一个写数据库","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"64dc32b3-13e5-4daf-8058-eee867dc1eba","page_size":[595,841],"block_position":"48-3"},{"bbox":[105,182,496,555],"index":4,"angle":0,"type":"algorithm","text":"semaphore mutex = 1; /*控制对rc的访问*/  \nsemaphore db = 1; /*控制对数据库的访问*/  \nint rc = 0; /*正在读或者即将读的进程数目*/  \nvoid writer(void)  \n{ while (TRUE) { /*无限循环*/ /*非临界区*/ /*获取互斥访问*/ /*更新数据*/ /*释放互斥访问*/ }  \n}  \n $\\rightarrow$  void reader(void) 读  \nwhile (TRUE) { /*无限循环*/ /*获得对rc的互斥访问权*/ /*现在又多了一个读者*/ /*如果这是第一个读者*/ /*释放对rc的互斥访问*/ /*访问数据*/ /*获取对rc的互斥访问*/ /*现在减少了一个读者*/ /*如果这是最后一个读者*/ /*释放对rc的互斥访问*/ /*非临界区*/ }","id":"40c63a62-17c3-4f52-a90e-d06698611e9e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"page_size":[595,841],"block_position":"48-4"},{"bbox":[105,556,276,569],"type":"text","angle":0,"index":5,"text":"读者优先——有写者想写则必须等待","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"44a3bbde-cffb-4a91-9d0f-6da5e1c45b08","page_size":[595,841],"block_position":"48-5"},{"bbox":[88,592,189,608],"type":"title","angle":0,"index":6,"text":"# 哲学家就餐问题","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":48,"id":"f5fd28e2-34f5-4b27-8817-8b5dd6ab61eb","page_size":[595,841],"block_position":"48-6"},{"bbox":[88,640,175,656],"type":"title","angle":0,"index":7,"text":"# 哲学家就餐问题","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":48,"id":"019cd1d3-c26f-4e5c-b435-a5e49052c491","page_size":[595,841],"block_position":"48-7"},{"bbox":[276,641,319,657],"type":"title","angle":0,"index":8,"text":"# 九曲闲干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":48,"id":"cae95b1b-ddfe-4fb7-8305-1d386486665d","page_size":[595,841],"block_position":"48-8"},{"bbox":[91,666,194,771],"index":9,"angle":0,"type":"image","img_path":"/e7aebfbbf7ad6638f3c2fbc42b8acaa4ada878ca8fed00b55eb0f0f96807950a.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":48,"id":"a2a7c2ef-f445-45a0-8fb9-4bc8b2bcd79c","page_size":[595,841],"block_position":"48-9"},{"bbox":[198,667,320,691],"type":"text","angle":0,"index":10,"text":"（对哲学家而言其他活动无关紧要）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"f01a00b5-3b87-48c4-90a2-f8951afd3dad","page_size":[595,841],"block_position":"48-10"},{"bbox":[198,702,317,751],"type":"text","angle":0,"index":11,"text":"次去取左边和右边的叉子，每次拿放下叉子继续思考","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"212dcd2c-3422-4dfe-95c3-b3388fd56166","page_size":[595,841],"block_position":"48-11"}],[{"bbox":[108,160,343,269],"index":0,"angle":0,"type":"code","text":"```c\ndefine N 5 < /* 哲学家的数目 */\nvoid philosopher(int i) /* i: 哲学家编号, 从0到4 */\n{\n    while (TRUE) {\n        think();\n        take_fork(i); 3\n        take_fork((i+1) % N); 4\n        eat();\n        put_fork(i); /* 将左叉放回桌上 */\n        put_fork((i+1) % N); /* 将右叉放回桌上 */\n}\n```","id":"cece022c-5405-49f5-a166-0fdca998c130","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":49,"page_size":[595,841],"block_position":"49-0"},{"bbox":[105,327,340,342],"type":"title","angle":0,"index":1,"text":"# 同时成功取到左侧叉子，再取右侧筷子失效。死锁","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":49,"id":"cc531858-b98c-408e-83ae-a642f0c8bc28","page_size":[595,841],"block_position":"49-1"},{"bbox":[105,349,444,383],"type":"text","angle":0,"index":2,"text":"，如果五位哲学家同时拿起了左边的叉子，那么就没有人能够拿到他们右边的叉子，于是发生死锁","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"fdf31ce3-8683-45a6-b043-b7fc2fe6b038","page_size":[595,841],"block_position":"49-2"},{"bbox":[110,395,433,425],"type":"text","angle":0,"index":3,"text":"果不可用，放下左叉子，等待一段时间后，重复这个过程。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"283c74ed-d845-40a9-b199-3353443ff92a","page_size":[595,841],"block_position":"49-3"},{"bbox":[104,434,433,481],"type":"text","angle":0,"index":4,"text":"可能在某个瞬间，所有哲学家同时拿起了左叉子，然后检查右叉子不可用，又放下友叉子。如此永远重复下去。所有程序都在不停的运行，但是都无法取得进展，称为饥饿","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"5645a36e-1b25-48cd-82b8-51399fe4606c","page_size":[595,841],"block_position":"49-4"},{"bbox":[105,510,252,531],"type":"title","angle":0,"index":6,"text":"# 哲学家就餐问题","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":49,"id":"767f11a1-6cbd-49c2-8013-401ea7e5b1bb","page_size":[595,841],"block_position":"49-5"},{"bbox":[327,510,480,544],"type":"title","angle":0,"index":7,"text":"# 种科法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":49,"id":"cad83960-c0b1-4196-84e1-4dff99d3da6e","page_size":[595,841],"block_position":"49-6"},{"bbox":[108,555,257,674],"index":8,"angle":0,"type":"code","text":"```c\ndefine N 5\n#define LEFT (i+N-1)%N\n#define RIGHT (i+1)%N\n#define THINKING 0\n#define HUNGRY 1\n#define EATING 2\ntypedef int semaphore;\nint state[N];\nsemaphore mutex = 1;\nsemaphore s[N];\n```","id":"bb7aa1c6-9b93-47a3-b611-639c4064632c","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":49,"page_size":[595,841],"block_position":"49-7"},{"bbox":[274,555,462,670],"index":9,"angle":0,"type":"code","text":"```txt\n/*哲学家数目*/  \n/*i的左邻居编号*/  \n/*i的右邻居编号*/  \n/*哲学家在思考*/  \n/*哲学家试图拿起叉子*/  \n/*哲学家进餐*/  \n/*信号量是一种特殊的整型数据*/  \n/*数组用来跟踪记录每位哲学家的状态*/  \n/*临界区的互斥*/  \n/*每个哲学家一个信号量*/\n```","id":"15937559-9dca-47d9-8270-d1e4bd400ad7","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":49,"page_size":[595,841],"block_position":"49-8"}],[{"bbox":[104,75,452,433],"index":0,"angle":0,"type":"algorithm","text":"void take_forks(int i) /\\*i:哲学家编号，从0到N-1\\*/{ down(&mutex); /\\*进入临界区\\*/ state[i]  $\\equiv$  HUNGRY; /\\*记录哲学家i处于饥饿的状态\\*/ test(i); /\\*尝试获取2把叉子\\*/ up(&mutex); /\\*离开临界区\\*/ down(&s[i]); /\\*如果得不到需要的叉子则阻塞\\*/ } void test(i) /\\*i:哲学家编号，从0到N-1\\*/ { if(state[i]  $\\equiv$  HUNGRY&&state[LEFT]！=EATING&&state[RIGHT]！=EATING){ state[i]  $\\equiv$  EATING; up(&s[i]); }   \nvoid put_forks(i)   \n{ down(&mutex); /\\*进入临界区\\*/ state[i]  $\\equiv$  THINKING; /\\*哲学家已经就餐完毕\\*/ test(LEFT); /\\*检查左边的邻居现在可以吃吗\\*/ test(RIGHT); /\\*检查右边的邻居现在可以吃吗\\*/ up(&mutex); /\\*离开临界区\\*/ }   \nvoid test(i) /\\*i:哲学家编号，从0到N-1\\*/ { if(state[i]  $\\equiv$  HUNGRY&&state[LEFT]！=EATING&&state[RIGHT]！=EATING){ state[i]  $\\equiv$  EATING; up(&s[i]); }","id":"8acb6289-7649-48fe-b8ee-e9eaf2c011d1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"page_size":[595,841],"block_position":"50-0"},{"bbox":[87,455,123,474],"type":"title","angle":0,"index":1,"text":"# 死锁","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":50,"id":"d327b89e-d36d-4977-bec7-23b533ba0eaf","page_size":[595,841],"block_position":"50-1"},{"bbox":[86,511,505,539],"type":"text","angle":0,"index":2,"text":"若系统中存在一组进程（两个或两个以上），且它们都无限等待该组进程中另一进程所占有的无法释放的资源，无法向前推进","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"id":"f7c8a389-b58a-4f70-af0e-302575f0441e","page_size":[595,841],"block_position":"50-2"},{"bbox":[88,543,151,555],"type":"text","angle":0,"index":3,"text":"1、竞争资源","id":"3411a8b0-ced7-4150-822e-64984394689f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"page_size":[595,841],"block_position":"50-3"},{"bbox":[87,558,192,571],"type":"text","angle":0,"index":4,"text":"2、进程推进顺序不当","id":"062ad00e-b404-45f0-bd8a-d22ad7e950d9","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"page_size":[595,841],"block_position":"50-4"}],[{"bbox":[117,75,411,289],"index":0,"angle":0,"type":"image","img_path":"/c1e5684d2fdb4dec24258d1f8aad50579db4e1496f67970464f7838746ce6584.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.49411764705882355,"page_idx":51,"id":"83eecca5-248d-4127-87a2-b4b8c9ecdc76","page_size":[595,841],"block_position":"51-0"},{"bbox":[86,296,504,326],"type":"text","angle":0,"index":1,"text":"3、信号量使用不当（顺序不当，其实可以把互斥信号量、同步信号量也看成一种竞争资源）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"eef065b2-22ab-4b6c-b38f-f6cf2d95ae9f","page_size":[595,841],"block_position":"51-1"},{"bbox":[87,343,238,356],"type":"text","angle":0,"index":2,"text":"饥饿：长进程一直得不到处理机","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"a9bf6a5e-b122-4722-a82c-3791b0eae6c3","page_size":[595,841],"block_position":"51-2"},{"bbox":[88,359,185,371],"type":"text","angle":0,"index":3,"text":"死循环：跳不出循环","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"6f433f9d-7e8e-4a11-b8a6-fa3d0eae317d","page_size":[595,841],"block_position":"51-3"},{"bbox":[108,372,430,476],"index":4,"angle":0,"type":"table_body","img_path":"/","id":"65284259-7116-4149-b484-de43996af0b6","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td></td><td>共同点</td><td>区别</td></tr><tr><td>死锁</td><td rowspan=\"3\">都是进程无法顺利向前推进的现象（故意设计的死循环除外）</td><td>死锁一定是“循环等待对方手里的资源”导致的，因此如果有死锁现象，那至少有两个或两个以上的进程同时发生死锁。另外，发生死锁的进程一定处于阻塞态。</td></tr><tr><td>饥饿</td><td>可能只有一个进程发生饥饿。发生饥饿的进程既可能是阻塞态(如长期得不到需要的I/O设备)，也可能是就绪态(长期得不到处理机)</td></tr><tr><td>死循环</td><td>可能只有一个进程发生死循环。死循环的进程可以上处理机运行（可以是运行态），只不过无法像期待的那样顺利推进。死锁和饥饿问题是由于操作系统分配资源的策略不合理导致的，而死循环是由代码逻辑的错误导致的。死锁和饥饿是管理者（操作系统）的问题，死循环是被管理者的问题。</td></tr></table>","page_idx":51,"page_size":[595,841],"block_position":"51-4"},{"bbox":[113,481,146,497],"type":"title","angle":0,"index":5,"text":"# 死锁","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":51,"id":"5c1ce973-3f84-4c29-869b-62465f7b39e4","page_size":[595,841],"block_position":"51-5"},{"bbox":[351,481,405,500],"type":"title","angle":0,"index":6,"text":"# 九曲闲干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":51,"id":"d2b8244e-3b5e-4f2c-8a1b-e8211a273265","page_size":[595,841],"block_position":"51-6"},{"bbox":[113,509,394,538],"type":"text","angle":0,"index":7,"text":"指多个进程在运行过程中因争夺资源而造成的一种僵局，当进程处于这种状态时，若无外力作用，这些进程都将无法再向前推进。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"9c1f4df7-0af0-4c24-a2bc-4b1b1e025dcb","page_size":[595,841],"block_position":"51-7"},{"bbox":[134,546,379,624],"index":8,"angle":0,"type":"image","img_path":"/1ecdd7e0287818b71ae40f2737ebdce5c62abb9ca9302b0886bd20ea7e885854.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4117647058823529,"page_idx":51,"id":"1f1bf7f8-6b63-43d6-ab8f-df5ad13ee1f1","page_size":[595,841],"block_position":"51-8"},{"bbox":[162,629,351,643],"type":"text","angle":0,"index":9,"text":"有两个进程分别将文档扫描后刻录到光盘上","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"b7b1c836-e421-418d-8b33-53c7c4443f1a","page_size":[595,841],"block_position":"51-9"},{"bbox":[105,655,318,668],"type":"title","angle":0,"index":10,"text":"# 我们把这一类需要排他性使用的对象称为资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":51,"id":"b96e2ff1-4cc6-4ebb-9301-08c2b69146cb","page_size":[595,841],"block_position":"51-10"},{"bbox":[107,670,371,683],"type":"text","angle":0,"index":11,"text":"资源可以是硬件设备(打印机等)或者是一组信息(数据库中加锁记录)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"41a41889-d0e7-438b-b43e-5ca52df0a64c","page_size":[595,841],"block_position":"51-11"},{"bbox":[114,707,334,718],"type":"text","angle":0,"index":13,"text":"可以从拥有它的进程中抢断而不会产生副作用，例如内存","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"5e1a9c4f-4fb4-430c-a475-7892d8378eb6","page_size":[595,841],"block_position":"51-12"},{"bbox":[113,741,308,752],"type":"text","angle":0,"index":15,"text":"无法从拥有它的进程处抢夺过来，例如光盘刻录机","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"08c4e98f-b8d2-4034-87c8-9c5f1c269b0b","page_size":[595,841],"block_position":"51-13"}],[{"bbox":[104,94,510,123],"type":"text","angle":0,"index":0,"text":"产生死锁的必要条件：互斥条件、占有且等待条件、不可剥夺条件、循环等待条件。必要条件：这四个条件必须同时存在才会导致死锁。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"e4b94516-e036-460e-9282-e260b2f32641","page_size":[595,841],"block_position":"52-0"},{"bbox":[105,125,221,139],"type":"text","angle":0,"index":1,"text":"1. 充分条件（ $( A  \\mathsf { B } )$ ）：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"6b9abdd1-8613-4e1c-b329-0e2308d9ea77","page_size":[595,841],"block_position":"52-1"},{"bbox":[140,141,504,169],"type":"text","angle":0,"index":2,"text":"o A 是 B 的“充分”条件，即 A 成立足以保证 B 成立，但 B 可能由其他原因导致。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"315b72cd-aad7-456d-9fbe-add15a580fb2","page_size":[595,841],"block_position":"52-2"},{"bbox":[105,172,221,186],"type":"text","angle":0,"index":3,"text":"2. 必要条件（ $( B \\gets A )$ ）：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"7942af86-15aa-4c71-bb9d-cf5c76830e65","page_size":[595,841],"block_position":"52-3"},{"bbox":[140,188,504,216],"type":"text","angle":0,"index":4,"text":"o B 是 A 的“必要”条件，即A 成立必须依赖 B 成立（或无 B 必无 A），但 B成立不一定导致 $\\mathsf { A } _ { \\mathsf { o } }$ 。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"27d8dcb7-a086-4de7-9e64-5589b295720a","page_size":[595,841],"block_position":"52-4"},{"bbox":[105,219,173,232],"type":"text","angle":0,"index":5,"text":"3. 关键区别：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"b4d84ba0-cdfe-4df0-8477-b355deeedbc4","page_size":[595,841],"block_position":"52-5"},{"bbox":[140,234,479,248],"type":"text","angle":0,"index":6,"text":"o 充分条件关注“A 能否保证 B”，必要条件关注“B 是否是 A 的前提”。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"a41dce0f-0aab-46c6-a5f9-15161a2b11a6","page_size":[595,841],"block_position":"52-6"},{"bbox":[108,246,174,264],"type":"text","angle":0,"index":7,"text":"必要条件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"e4f21ba3-5953-49f0-a3c1-4ce8dc9ec96b","page_size":[595,841],"block_position":"52-7"},{"bbox":[195,246,227,264],"type":"text","angle":0,"index":8,"text":"死锁","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"a0299314-9edd-4182-9792-6562453abf34","page_size":[595,841],"block_position":"52-8"},{"bbox":[351,246,408,264],"type":"text","angle":0,"index":9,"text":"九澜","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"904936f1-7acb-416b-8c7c-e331408f14a9","page_size":[595,841],"block_position":"52-9"},{"bbox":[113,284,370,296],"type":"text","angle":0,"index":12,"text":"每个资源要么已经分配给了一个进程，要么就是可以申请使用的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"4a99c013-36bc-4949-8da3-991f204e629f","page_size":[595,841],"block_position":"52-10"},{"bbox":[107,315,407,327],"type":"text","angle":0,"index":14,"text":"进程已经保持了至少一个资源，但是又提出了新的资源请求。如果该资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"1c817b60-316c-41d1-a50d-23129da83e0b","page_size":[595,841],"block_position":"52-11"},{"bbox":[114,330,402,342],"type":"text","angle":0,"index":15,"text":"又被其他进程占有，此时请求进程阻塞，但是对已获得的资源保持不放。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"998acf3b-5e79-490b-a325-bcafb0047242","page_size":[595,841],"block_position":"52-12"},{"bbox":[108,345,177,356],"type":"text","angle":0,"index":16,"text":"·不可抢占条件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"c25e3ff7-8a2b-4a78-a996-36a1d33c9651","page_size":[595,841],"block_position":"52-13"},{"bbox":[113,360,390,373],"type":"text","angle":0,"index":17,"text":"进程已获得的资源不能被强制性的抢占，只能使用完时由其自己释放","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"90305636-8c1c-4895-a2b1-81661c61debc","page_size":[595,841],"block_position":"52-14"},{"bbox":[108,379,176,391],"type":"text","angle":0,"index":18,"text":"环路等待条件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"aafbb9cf-b97b-4383-90da-5e06e102d6bb","page_size":[595,841],"block_position":"52-15"},{"bbox":[107,393,416,406],"type":"text","angle":0,"index":19,"text":"发生死锁时 系统中一定有两个或者两个以上的进程组成一条环路，该环路","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"44cb046f-7d7a-40a0-bdef-9ac613fcd0c8","page_size":[595,841],"block_position":"52-16"},{"bbox":[114,405,307,416],"type":"text","angle":0,"index":20,"text":"中每个进程都在等待着下一个进程所占用的资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"27fbb85f-e2f3-4247-8f23-039382fb947c","page_size":[595,841],"block_position":"52-17"},{"bbox":[87,473,147,489],"type":"title","angle":0,"index":21,"text":"# 死锁避免","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":52,"id":"381ffc5f-6e67-46a3-b60d-90461c99955e","page_size":[595,841],"block_position":"52-18"},{"bbox":[105,523,151,537],"type":"title","angle":0,"index":22,"text":"# 安全状态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":52,"id":"7c84451f-246f-4c9b-a71f-9b51000bc0bc","page_size":[595,841],"block_position":"52-19"},{"bbox":[120,544,204,557],"type":"text","angle":0,"index":23,"text":"图中a为安全状态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"3e690d87-ba52-465e-a3c4-9f04d0f9322f","page_size":[595,841],"block_position":"52-20"},{"bbox":[115,594,176,663],"index":24,"angle":0,"type":"image","img_path":"/27f68b1a443048a5e3ae76ead23e63fb8420d9152ee44d4ff4e56964943b47e8.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":52,"id":"1b55c321-3c65-47b9-8dc2-92e49bf35e3b","page_size":[595,841],"block_position":"52-21"},{"bbox":[184,574,234,655],"index":26,"angle":0,"type":"image","img_path":"/bcecaebf53ac2dce2b75e3048678e842f4fdc68f0124ad05267bdbcb5b9de08a.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":52,"id":"62c134cf-445f-499b-9d36-753573472ee2","page_size":[595,841],"block_position":"52-22"},{"bbox":[258,574,291,656],"index":27,"angle":0,"type":"image","img_path":"/27eace3686e290b8374151fc146f356f0fa890fe1336b821809ae90748c49f38.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":52,"id":"87122f04-0cf3-4995-85f8-1e0a7ed52f36","page_size":[595,841],"block_position":"52-23"},{"bbox":[300,574,349,655],"index":28,"angle":0,"type":"image","img_path":"/5774a79f21a96638df76aa68f48fc17869ac7049f7cc39d02b4146d257f81f17.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":52,"id":"03f8ce1b-d253-440c-9a8e-48a3901cf073","page_size":[595,841],"block_position":"52-24"},{"bbox":[358,574,407,655],"index":29,"angle":0,"type":"image","img_path":"/324d9d3c98215a5e4528c4ed963c0857646a5192f6de260cd84739564499dc91.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":52,"id":"ac515032-207a-4921-bdcc-c42036af7a1f","page_size":[595,841],"block_position":"52-25"},{"bbox":[105,679,256,692],"type":"text","angle":0,"index":30,"text":"安全序列，就是指如果系统按照","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"5f2819d7-6c37-45ae-8a39-663ee84911c7","page_size":[595,841],"block_position":"52-26"},{"bbox":[105,695,202,708],"type":"text","angle":0,"index":31,"text":"安全序列可能有多个","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"8c980568-bc84-44b6-8c58-e270e9d9afcb","page_size":[595,841],"block_position":"52-27"},{"bbox":[105,710,329,724],"type":"text","angle":0,"index":32,"text":"找不出任何一个安全序列，就进入了不安全状态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"a2b481d7-c961-4d58-a565-fdf6032df3c2","page_size":[595,841],"block_position":"52-28"},{"bbox":[105,726,265,739],"type":"text","angle":0,"index":33,"text":"进入不安全状态，就可能发生死锁","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"72e494c6-8551-404b-872c-043f964f9b34","page_size":[595,841],"block_position":"52-29"}],[{"bbox":[111,107,220,120],"type":"text","angle":0,"index":0,"text":"不安全状态并不是死锁","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"d1aebf8d-5984-4643-97cb-af18eca4ab08","page_size":[595,841],"block_position":"53-0"},{"bbox":[117,160,170,223],"index":2,"angle":0,"type":"image","img_path":"/2baa16bee0d6562154edf92a392c2ca89363854e5eae57f871229355fa84481d.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":53,"id":"b7d59383-7567-431d-8bf0-9af99bfe7843","page_size":[595,841],"block_position":"53-1"},{"bbox":[188,160,264,223],"index":4,"angle":0,"type":"image","img_path":"/628b8e4ebaff3102a7aa77b40571f15eba00bc7dba14814c8ce2cfc18fdf1cbf.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":53,"id":"a447ff62-cc11-4bb1-a712-739d606f2e0b","page_size":[595,841],"block_position":"53-2"},{"bbox":[279,159,332,221],"index":6,"angle":0,"type":"image","img_path":"/4fe34c23a09000bcbed71099486fb9f6832c30f46c297ff383af500be52ce5fa.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":53,"id":"c6c0b72d-e3f8-4c42-bfa6-2e83353e562a","page_size":[595,841],"block_position":"53-3"},{"bbox":[361,159,412,220],"index":8,"angle":0,"type":"image","img_path":"/2e6817351a3fb616c01e41e06c6beeab6e24269c13f7a5bcbbf4312b72a922d4.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":53,"id":"7d5631f2-47e1-4f12-8f34-54b01673e0f6","page_size":[595,841],"block_position":"53-4"},{"bbox":[88,270,160,287],"type":"title","angle":0,"index":9,"text":"# 银行家算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":53,"id":"e3fcbd15-d840-41cc-aa7b-28f820ac15cb","page_size":[595,841],"block_position":"53-5"},{"bbox":[110,336,339,350],"type":"text","angle":0,"index":10,"text":"判断对请求的满足是否会导致进入不安全状态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"c2da8925-26ca-4886-a49d-296d9a3b3912","page_size":[595,841],"block_position":"53-6"},{"bbox":[110,358,407,371],"type":"text","angle":0,"index":11,"text":"如果会导致不安全状态，就拒绝该请求，否则就满足该请求","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"444e5a60-373e-462b-82d8-2fd37a8ada5b","page_size":[595,841],"block_position":"53-7"},{"bbox":[152,407,201,477],"index":13,"angle":0,"type":"image","img_path":"/78b2a54c8a65d7634cacb17b505e4a5c25b05ad0a2ec0f2738952f8c26f1ba66.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":53,"id":"f851802c-dc96-4cca-8f36-accbe5c47383","page_size":[595,841],"block_position":"53-8"},{"bbox":[239,407,286,478],"index":15,"angle":0,"type":"image","img_path":"/bf03375d24ec412c4d74ecc30d07acb840de76ecf38ac7311d383be67a45c106.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":53,"id":"8832d61c-84cf-4d75-8fc6-72ff588235f4","page_size":[595,841],"block_position":"53-9"},{"bbox":[324,407,372,479],"index":17,"angle":0,"type":"image","img_path":"/65d13fb0dcd2f17efc8b12c656a566ff32b2cf1d8a7d7660975a411fc951bb2b.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":53,"id":"2531fbc8-0ca9-40c8-9b66-8254665f0ff6","page_size":[595,841],"block_position":"53-10"},{"bbox":[106,492,150,505],"type":"title","angle":0,"index":18,"text":"# 安全序列","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":53,"id":"66bf7873-46cc-4cae-9200-bd4308c3035c","page_size":[595,841],"block_position":"53-11"},{"bbox":[123,511,224,545],"index":19,"angle":0,"type":"table_body","img_path":"/","id":"58265838-7f6a-4c74-9b4f-79e6c4017e7b","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td></td><td>最大需求</td><td>已借走</td><td>最多还会借</td></tr><tr><td>B</td><td>70</td><td>20+30=60</td><td>50-30=20</td></tr><tr><td>A</td><td>40</td><td>10</td><td>30</td></tr><tr><td>T</td><td>50</td><td>30</td><td>20</td></tr></table>","page_idx":53,"page_size":[595,841],"block_position":"53-12"},{"bbox":[248,511,348,545],"index":20,"angle":0,"type":"table_body","img_path":"/","id":"2d68f53b-0fd7-4a95-95ff-e1652b1102d9","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td></td><td>最大需求</td><td>已借走</td><td>最多还会借</td></tr><tr><td>B</td><td>70</td><td>20</td><td>50</td></tr><tr><td>A</td><td>40</td><td>10+20=30</td><td>30-20=10</td></tr><tr><td>T</td><td>50</td><td>30</td><td>20</td></tr></table>","page_idx":53,"page_size":[595,841],"block_position":"53-13"},{"bbox":[121,549,230,568],"type":"text","angle":0,"index":21,"text":"给B借30亿是不安全的..之后手里只剩10亿，如","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"7227ce00-28f6-4c5f-8fac-af6d0c726b54","page_size":[595,841],"block_position":"53-14"},{"bbox":[250,550,351,565],"type":"text","angle":0,"index":22,"text":"给A借20亿是安全的，因为存在T→BA这样的安全序列。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"50bbf73b-bc90-4c6e-8dfb-71937b7323ea","page_size":[595,841],"block_position":"53-15"},{"bbox":[119,571,351,602],"type":"text","angle":0,"index":23,"text":"所谓安全序列，就是指如果系统按照这种序列分配资源，则每个进程都能顺利完成，只要能找出一个安全序列，系统就是安全状态。当然，安全序列可能有多个。如果分配了资源之后，系统中找不出任何一个安全序列，系统就进入了不安全状态。这就意味着之后可能所有进程都无法顺利的执行下去。当然，如果有进程提前归还了一些资源，那系统也有可能重新回到安全状态，不过我们在分配资源之前总是要考虑到最坏的情况。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"66985137-2013-49cb-accc-c79fb472e23e","page_size":[595,841],"block_position":"53-16"}],[{"bbox":[151,75,214,127],"index":0,"angle":0,"type":"image","img_path":"/4c40239f86abaddc0b32c243fc303b000b60af9e2c60870326de5b49aa1eaa67.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":54,"id":"d56c1dd2-6d6d-4192-978f-b0435cbd88d9","page_size":[595,841],"block_position":"54-0"},{"bbox":[149,142,349,216],"index":3,"angle":0,"type":"table_body","img_path":"/","id":"4a48b1e0-7d75-4cdb-9e02-2455f904d147","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td></td><td>最大需求</td><td>已借走</td><td>最多还会借</td></tr><tr><td>B</td><td>70</td><td>20</td><td>50</td></tr><tr><td>A</td><td>40</td><td>10</td><td>30</td></tr><tr><td>T</td><td>50</td><td>30</td><td>20</td></tr></table>","page_idx":54,"page_size":[595,841],"block_position":"54-1"},{"bbox":[360,142,593,250],"index":4,"angle":0,"type":"table_body","img_path":"/","id":"1dfa7257-7017-424f-b33e-637d782875f8","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>进程</td><td>最大需求</td><td>已分配</td><td>最多还需要</td></tr><tr><td>P0</td><td>(7,5,3)</td><td>(0,1,0)</td><td>(7,4,3)</td></tr><tr><td>P1</td><td>(3,2,2)</td><td>(2,0,0)</td><td>(1,2,2)</td></tr><tr><td>P2</td><td>(9,0,2)减</td><td>(3,0,2)→</td><td>(6,0,0)</td></tr><tr><td>P3</td><td>(2,2,2)</td><td>(2,1,1)</td><td>(0,1,1)</td></tr><tr><td>P4</td><td>(4,3,3)</td><td>(0,0,2)</td><td>(4,3,1)</td></tr></table>","page_idx":54,"page_size":[595,841],"block_position":"54-2"},{"bbox":[137,222,334,261],"type":"text","angle":0,"index":5,"text":"此时总共已分配（7，2，5），还剩余（3,3,2)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"3a91f9ee-a58c-42df-af95-deed04310f19","page_size":[595,841],"block_position":"54-3"},{"bbox":[327,275,467,287],"type":"text","angle":0,"index":6,"text":"资源总数（10,5，7），剩余可用资源（7，4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"43bf26ab-4de8-41b9-a9aa-52a73cff9ad1","page_size":[595,841],"block_position":"54-4"},{"bbox":[139,275,310,351],"index":7,"angle":0,"type":"table_body","img_path":"/","id":"b5642112-53bf-481a-a66a-3e015b310728","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>进程</td><td>最大需求</td><td>已分配</td><td>最多还需要</td></tr><tr><td>P0</td><td>(7,5,3)</td><td>(0,1,0)</td><td>(7,4,3)</td></tr><tr><td colspan=\"4\"></td></tr><tr><td>P2</td><td>(9,0,2)</td><td>(3,0,2)</td><td>(6,0,0)</td></tr><tr><td colspan=\"4\"></td></tr><tr><td>P4</td><td>(4,3,3)</td><td>(0,0,2)</td><td>(4,3,1)</td></tr></table>","page_idx":54,"page_size":[595,841],"block_position":"54-5"},{"bbox":[143,358,240,367],"type":"text","angle":0,"index":8,"text":"此时系统是否处于安全状态？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"0c640b52-0290-4de6-9c89-1f8c652d68c7","page_size":[595,841],"block_position":"54-6"},{"bbox":[143,367,325,375],"type":"text","angle":0,"index":9,"text":"思路：尝试找出一个安全序列.IP1，P3!","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"82ade40a-72ce-4183-8eac-14bb83e260b2","page_size":[595,841],"block_position":"54-7"},{"bbox":[143,375,330,385],"type":"text","angle":0,"index":10,"text":"依次检查剩余可用资源（3，3，2）是否能满足各进程的需求","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"f1722933-cb76-4b7b-896c-61a3d4dfe041","page_size":[595,841],"block_position":"54-8"},{"bbox":[143,385,378,394],"type":"text","angle":0,"index":11,"text":"可满足P1需求，将P1加入安全序列，并更新剩余可用资源值为(5,3,2)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"9801f1a3-b3e5-4092-a3fd-4d3a1fa826b0","page_size":[595,841],"block_position":"54-9"},{"bbox":[143,394,451,402],"type":"text","angle":0,"index":12,"text":"依次检查剩余可用资源（5，3，2）是否能满足剩余进程（不包括已加入安全序列的进程）的需求","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"efbbff5b-4636-4e3d-a277-da06d74e4e4b","page_size":[595,841],"block_position":"54-10"},{"bbox":[143,403,378,412],"type":"text","angle":0,"index":13,"text":"可满足P3需求，将P3加入安全序列，并更新剩余可用资源值为（7，4，3）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"107d2310-11e5-42b9-a447-42086db9769d","page_size":[595,841],"block_position":"54-11"},{"bbox":[143,412,461,422],"type":"text","angle":0,"index":14,"text":"依次检查剩余可用资源（7，4，3)是否能满足剩余进程（不包括已加入安全序列的进程）的需...","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"84e6b00b-4215-4bff-94df-645f33832c25","page_size":[595,841],"block_position":"54-12"},{"bbox":[143,429,458,458],"type":"text","angle":0,"index":15,"text":"以此类推，共五次循环检查即可将5个进程都加入安全序列中，最终可得一个安全序列。该算法称为安全性算法。可以很方便地用代码实现以上流程，每一轮检查都从编号较小的进程开始检实际做题时可以更快速的得到安全序列。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"7bfd44d8-6dd2-453f-a732-8eb25c39b3d1","page_size":[595,841],"block_position":"54-13"},{"bbox":[105,468,370,481],"type":"title","angle":0,"index":16,"text":"# 如果导致不安全状态，就拒绝该请求，否则就满足该请求","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":54,"id":"71bae89c-6284-4679-9e80-1e7ff08ca980","page_size":[595,841],"block_position":"54-14"},{"bbox":[104,483,503,513],"type":"text","angle":0,"index":17,"text":"死锁避免从本质上说是不可能的，因为很少由进程在运行之前就知道运行所需的最大资源数，进程数也是不固定的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"41b88e32-188c-4c09-8445-3e3951e37d6c","page_size":[595,841],"block_position":"54-15"},{"bbox":[132,516,459,589],"index":18,"angle":0,"type":"table_body","img_path":"/","id":"e1b0f8f4-5055-4cea-ab08-ddd2b33e5671","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>进程</td><td>最大需求</td><td>已分配</td><td>最多还需要</td></tr><tr><td>P0</td><td>(7,5,3)</td><td>(0,1,0)</td><td>(7,4,3)</td></tr><tr><td>P1</td><td>(3,2,2)</td><td>(2,0,0)</td><td>(1,2,2)</td></tr><tr><td>P2</td><td>(9,0,2)</td><td>(3,0,2)</td><td>(6,0,0)</td></tr><tr><td>P3</td><td>(2,2,2)</td><td>(2,1,1)</td><td>(0,1,1)</td></tr><tr><td>P4</td><td>(4,3,3)</td><td>(0,0,2)</td><td>(4,3,1)</td></tr></table>","page_idx":54,"page_size":[595,841],"block_position":"54-16"},{"bbox":[134,593,324,602],"type":"text","angle":0,"index":19,"text":"实际做题（手算）时可用更快速的方法找到一个安全序列：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"5e4c05f9-32f6-4d2d-8100-daf28fefe9db","page_size":[595,841],"block_position":"54-17"},{"bbox":[134,602,452,621],"type":"text","angle":0,"index":20,"text":"经对比发现，（3,3,2）可满足P1、P3，说明无论如何，这两个进程的资源需求一定是可以依次被满足的，因此P1、P3一定可以顺利的执行完，并归还资源。可把P1、P3先加入安全序列。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"6ce8b61b-3a1c-42fb-ad88-92ff0f464dc6","page_size":[595,841],"block_position":"54-18"}],[{"bbox":[127,89,302,167],"index":0,"angle":0,"type":"table_body","img_path":"/","id":"a685e561-315d-4a28-a16a-ae3d3d49875a","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>进程</td><td>最大需求</td><td>已分配</td><td>最多还需要</td></tr><tr><td>P0</td><td>(8,5,3)</td><td>(0,1,0)</td><td>(8,4,3)</td></tr><tr><td colspan=\"4\"></td></tr><tr><td>P2</td><td>(9,5,2)</td><td>(3,0,2)</td><td>(6,5,0)</td></tr><tr><td colspan=\"4\"></td></tr><tr><td>P4</td><td>(4,3,6)</td><td>(0,0,2)</td><td>(4,3,4)</td></tr></table>","page_idx":55,"page_size":[595,841],"block_position":"55-0"},{"bbox":[129,171,244,181],"type":"text","angle":0,"index":2,"text":"再看一个找不到安全序列的例子：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"aea1b25b-535a-4b70-b2b8-d8b51495e8f4","page_size":[595,841],"block_position":"55-1"},{"bbox":[129,181,465,200],"type":"text","angle":0,"index":3,"text":"经对比发现，（3,3,2）可满足P1、P3，说明无论如何，这两个进程的资源需求一定是可以依次被满足的，因此P1、P3一定可以顺利的执行完，并归还资源。可把P1、P3先加入安全序列。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"4ab3a23e-7378-452c-9bfa-e8f6b55a80b5","page_size":[595,841],"block_position":"55-2"},{"bbox":[129,200,251,210],"type":"text","angle":0,"index":4,"text":"（2,0,0)+（2,1,1)+（3,3,2）=（7,4,3）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"dfb3e283-0236-47b2-b49c-dc2bace09d27","page_size":[595,841],"block_position":"55-3"},{"bbox":[114,312,275,362],"type":"text","angle":0,"index":7,"text":"每个进程在运行前先声明对各种资源的最大需求数，则可用一个n*m的矩阵（可用二维数组实现）表示所有进程对各种资源的最大需求数。不妨称为最大需求矩阵Max，Max[i,j]=K表示进程Pi最多需要K个资源Rj。同理，系统可以用一个n*m的分配矩阵Allocation表示对所有进程的资源分配情况。Max-Allocation=","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"2ef8ca99-0138-44fa-a4a7-1bf097852cc7","page_size":[595,841],"block_position":"55-4"},{"bbox":[114,362,273,386],"type":"text","angle":0,"index":8,"text":"Need矩阵，表示各进程最多还需要多少各类资源。另外，还要用一个长度为m的一维数组Available表示当前系统中还有多少可用资源。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"d9e005bd-a6a7-416a-84c2-1402dc216f30","page_size":[595,841],"block_position":"55-5"},{"bbox":[114,386,270,402],"type":"text","angle":0,"index":9,"text":"某进程Pi向系统申请资源，可用一个长度为m的一维数组Request表示本次申请的各种资源量。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"bb471451-6137-4cba-b37c-39e0b954fa68","page_size":[595,841],"block_position":"55-6"},{"bbox":[299,291,355,301],"index":10,"angle":0,"type":"table_caption","text":"Available=(1,2,1)","id":"9b545d0b-9cbf-4e91-b4f2-8430fe9a7307","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"page_size":[595,841],"block_position":"55-7"},{"bbox":[371,291,425,301],"index":11,"angle":0,"type":"table_caption","text":"","id":"8eadc1ea-15ba-4697-9c53-668d873e2116","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"page_size":[595,841],"block_position":"55-8"},{"bbox":[277,305,428,373],"index":12,"angle":0,"type":"table_body","img_path":"/","id":"38402657-976d-4679-979c-cf58443603ed","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>进程</td><td>最大需求</td><td>已分配</td><td>最多还需要</td></tr><tr><td>P0</td><td>(7,5,3)</td><td>(2,2,1)</td><td>(5,3,2)</td></tr><tr><td>P1</td><td>(3,2,2)</td><td>(2,0,0)</td><td>(1,2,2)</td></tr><tr><td>P2</td><td>(9,0,2)</td><td>(3,0,2)</td><td>(6,0,0)</td></tr><tr><td>P3</td><td>(2,2,2)</td><td>(2,1,1)</td><td>(0,1,1)</td></tr><tr><td>P4</td><td>(4,3,3)</td><td>(0,0,2)</td><td>(4,3,1)</td></tr></table>","page_idx":55,"page_size":[595,841],"block_position":"55-9"},{"bbox":[312,378,329,392],"type":"text","angle":0,"index":13,"text":"Max矩阵","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"5dc8ba26-e18a-4a4e-ae90-cdd5df6a07f4","page_size":[595,841],"block_position":"55-10"},{"bbox":[348,377,377,391],"type":"text","angle":0,"index":14,"text":"Allocation","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"34448f05-2362-40c7-9f80-533b265abbe2","page_size":[595,841],"block_position":"55-11"},{"bbox":[312,405,401,419],"type":"title","angle":0,"index":16,"text":"# 因为它所需要的资源数已超过","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":55,"id":"5c37fad9-430c-4a05-a476-5a1ca291a3d8","page_size":[595,841],"block_position":"55-12"},{"bbox":[114,405,302,430],"type":"text","angle":0,"index":17,"text":"可用银行家算法预判本次分配是否会导致系统进入不安全状态：①如果Request[i]<Need[i，j](0sjsm)便转向②：否则认为出错。②如果Request[j<Available[j]（0sjm），便转向③：否则表示尚","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"556c30a7-37e5-4cc1-a2e0-8c1c546807e2","page_size":[595,841],"block_position":"55-13"},{"bbox":[114,430,415,439],"type":"text","angle":0,"index":18,"text":"$\\textcircled{3}$ 系统试探着把资源分配给进程Pi，并修改相应的数据（并非真的分配，修改数值只是为了做预判）：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"cc17c8c0-ed9f-4793-9722-65e285ef5614","page_size":[595,841],"block_position":"55-14"},{"bbox":[114,439,203,463],"type":"text","angle":0,"index":19,"text":"Available $=$ Available-Request;Allocation[i $\\mathrm { i l } =$ Allocation[i,j]+Need[i $\\mathrm { i } ] =$ Need[i,j]-Request","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"3f9a371e-a889-47fa-afa8-eca775b53406","page_size":[595,841],"block_position":"55-15"},{"bbox":[248,439,421,465],"type":"text","angle":0,"index":20,"text":"④操作系统执行安全性算法，检查此次资源分配后，系统是否处于安全状态。若安全，才正式分配：否则，恢复相应数据，让进程阻塞等待。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"1f1344fc-42c1-421b-9cb0-18542b3a923d","page_size":[595,841],"block_position":"55-16"},{"bbox":[121,484,152,491],"type":"text","angle":0,"index":21,"text":"数据结构：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"e81f27f1-cbd8-4aef-9f5f-9b9216703b26","page_size":[595,841],"block_position":"55-17"},{"bbox":[121,492,283,500],"type":"text","angle":0,"index":22,"text":"长度为m的一维数组Available表示还有多少可用资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"6633e831-b90b-4a75-b88a-ca199cb078bd","page_size":[595,841],"block_position":"55-18"},{"bbox":[121,500,262,507],"type":"text","angle":0,"index":23,"text":"n*m矩阵Max表示各进程对资源的最大需求数","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"a3d71154-29fc-4419-a033-882a50d6a44b","page_size":[595,841],"block_position":"55-19"},{"bbox":[121,508,284,516],"type":"text","angle":0,"index":24,"text":"n*m矩阵Allocation表示已经给各进程分配了多少资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"03d3d8b2-31a9-4b8a-93be-05add6a39860","page_size":[595,841],"block_position":"55-20"},{"bbox":[121,517,301,524],"type":"text","angle":0,"index":25,"text":"Max-Allocation $=$ Need矩阵表示各进程最多还需要多少资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"097efea6-9b16-4d31-97fc-1f82c2e8a32e","page_size":[595,841],"block_position":"55-21"},{"bbox":[121,525,314,534],"type":"text","angle":0,"index":26,"text":"用长度为m的一位数组Request表示进程此次申请的各种资源数","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"b5caf8f5-7da2-451d-88b7-3b01c6c485a9","page_size":[595,841],"block_position":"55-22"},{"bbox":[121,541,173,549],"type":"text","angle":0,"index":27,"text":"银行家算法步骤：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"c36b1aa4-2b97-4315-a09e-a8adb1558142","page_size":[595,841],"block_position":"55-23"},{"bbox":[121,550,274,557],"type":"text","angle":0,"index":28,"text":"①检查此次申请是否超过了之前声明的最大需求数","id":"fc402318-07df-486c-8984-5e54b5d705e3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"page_size":[595,841],"block_position":"55-24"},{"bbox":[121,558,287,565],"type":"text","angle":0,"index":29,"text":"②检查此时系统剩余的可用资源是否还能满足这次请求","id":"bb7cb793-04c9-4233-a04b-8233407d7f69","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"page_size":[595,841],"block_position":"55-25"},{"bbox":[121,565,219,574],"type":"text","angle":0,"index":30,"text":"③试探着分配，更改各数据结构","id":"2b2a682b-dfda-463c-bbf4-231213be37a8","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"page_size":[595,841],"block_position":"55-26"},{"bbox":[121,574,307,582],"type":"text","angle":0,"index":31,"text":"④用安全性算法检查此次分配是否会导致系统进入不安全状态","id":"859159b2-5efe-4f13-b6a8-46199d6eb2b1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"page_size":[595,841],"block_position":"55-27"},{"bbox":[121,591,173,598],"type":"text","angle":0,"index":33,"text":"安全性算法步骤：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"e294b52f-59cf-4717-87b8-f838f51db931","page_size":[595,841],"block_position":"55-28"},{"bbox":[121,599,412,616],"type":"text","angle":0,"index":34,"text":"检查当前的剩余可用资源是否能满足某个进程的最大需求，如果可以，就把该进程加入安全序列，并把该进程持有的资源全部回收。 1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"c51bee71-b625-4d4a-a2f6-3c00dc0357d1","page_size":[595,841],"block_position":"55-29"}],[{"bbox":[367,81,427,99],"type":"title","angle":0,"index":0,"text":"# 鸵鸟算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":56,"id":"5e904431-0e08-4b8f-99ff-08056a97e3d4","page_size":[595,841],"block_position":"56-0"},{"bbox":[89,544,354,559],"type":"text","angle":0,"index":2,"text":"采用假脱机打印技术（SPOOLing）可以允许多个进程同时产生输出","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"e2d5226f-a2f4-410e-983d-79042e2cce55","page_size":[595,841],"block_position":"56-1"},{"bbox":[95,564,361,638],"index":3,"angle":0,"type":"image","img_path":"/5507ccaf4e794d13ca23f853c8f9414881c012a4474a5650342db7cb569ca02d.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4470588235294118,"page_idx":56,"id":"3c3cdb23-02a5-429b-9398-6848f300c92e","page_size":[595,841],"block_position":"56-2"}],[{"bbox":[88,115,147,131],"type":"title","angle":0,"index":0,"text":"# 预防死锁","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":57,"id":"a42cff64-75d1-4a1c-a4b3-149345665d41","page_size":[595,841],"block_position":"57-0"},{"bbox":[105,160,286,195],"index":1,"angle":0,"type":"image","img_path":"/10ee9ed9fa304c92af0edc70d0af5e8ce379e9c19d7a57940ae45461261dce5a.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3042016806722689,"page_idx":57,"id":"a6e6865d-ebaf-47ea-a2a6-8c341c1c86c9","page_size":[595,841],"block_position":"57-1"},{"bbox":[111,203,227,212],"type":"text","angle":0,"index":2,"text":"","id":"905850f7-b94c-4e80-a109-b3470053fe1d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"page_size":[595,841],"block_position":"57-2"},{"bbox":[111,224,168,232],"type":"text","angle":0,"index":3,"text":"","id":"44767356-6646-4450-9de1-d5613a38509d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"page_size":[595,841],"block_position":"57-3"},{"bbox":[111,244,168,253],"type":"text","angle":0,"index":4,"text":"","id":"2ba449f4-e906-4344-a6d5-5a2d31577a60","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"page_size":[595,841],"block_position":"57-4"},{"bbox":[87,295,175,311],"type":"title","angle":0,"index":6,"text":"# 破坏互斥条件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":57,"id":"cf6d82e8-e988-4657-9707-ed16e951b272","page_size":[595,841],"block_position":"57-5"},{"bbox":[88,371,362,495],"index":7,"angle":0,"type":"image","img_path":"/17adbdc0b1c87937532d30c4dca7dee74a3987bd9a62d9772bbb00a80f137ea4.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.46050420168067224,"page_idx":57,"id":"c688108c-4ae1-4d39-a0a0-062f344e69bf","page_size":[595,841],"block_position":"57-6"},{"bbox":[104,532,498,577],"type":"text","angle":0,"index":8,"text":"操作系统采用SPOOLing技术把独占设备在逻辑上改造成共享设备在各进程看来，自己对打印机资源的使用请求立即被接受处理了，不需要再阻塞等待在磁盘上开一个缓冲区实现共享","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"aa9146c6-50f1-46d5-9f7a-42d23541d039","page_size":[595,841],"block_position":"57-7"},{"bbox":[134,596,415,694],"index":9,"angle":0,"type":"image","img_path":"/ab7ec2b27d401f63d45094a213c565120cad9794b576541a5999b3b5c201e90a.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4722689075630252,"page_idx":57,"id":"0f34e1fa-bf05-4466-a78a-62a9fd9eceeb","page_size":[595,841],"block_position":"57-8"}],[{"bbox":[88,85,215,101],"type":"title","angle":0,"index":0,"text":"# 破坏请求和保持条件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":58,"id":"e9542465-28de-4dfa-ba5a-1945f545f01d","page_size":[595,841],"block_position":"58-0"},{"bbox":[94,157,297,168],"type":"text","angle":0,"index":2,"text":"如果所需的全部资源可用，那么进程肯定可以运行结束","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"fe264e74-6c7f-41fd-ad2b-20497717e129","page_size":[595,841],"block_position":"58-1"},{"bbox":[94,172,337,183],"type":"text","angle":0,"index":3,"text":"如果有一个或者多个资源正被使用，那么就不进行分配，进程等待","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"8d015e48-80cc-4519-a218-fd0474ead1b2","page_size":[595,841],"block_position":"58-2"},{"bbox":[121,243,419,262],"type":"text","angle":0,"index":6,"text":"请求和保持条件：进程已经保持了至少一个资源，但又提出了新的资源请求，而该资源又被其他进程占有，此时请求进程被阻塞，但又对自己已有的资源保持不放。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"154b4841-b6c0-487a-914b-b783de99dbb4","page_size":[595,841],"block_position":"58-3"},{"bbox":[121,268,419,295],"type":"text","angle":0,"index":7,"text":"可以采用静态分配方法，即进程在运行前一次申请完它所需要的全部资源，在它的资源未满足前，不让它投入运行。一旦投入运行后，这些资源就一直归它所有，该进程就不会再请求别的任何资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"03c7ca79-2b51-4a63-8115-731333788304","page_size":[595,841],"block_position":"58-4"},{"bbox":[121,301,250,309],"type":"text","angle":0,"index":8,"text":"该策略实现起来简单，但也有明显的缺点","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"ad0c4ab9-d6ce-4e51-bc1c-bc2d7c2f5ae2","page_size":[595,841],"block_position":"58-5"},{"bbox":[121,310,418,327],"type":"text","angle":0,"index":9,"text":"有些资源可能只需要用很短的时间，因此如果进程的整个运行期间都一直保持着所有资源，就会造成严重的资源浪费，资源利用率极低。另外，该策略也有可能导致某些进程饥饿。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"a8ad8ee2-a0d6-4f7c-80f4-bf851b4ff2e7","page_size":[595,841],"block_position":"58-6"},{"bbox":[184,331,357,400],"index":10,"angle":0,"type":"image","img_path":"/8de858f24c88b43d81c74cb161765a184ea8a9cb83fb61830421c5de9ef94207.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2907563025210084,"page_idx":58,"id":"477cf4e7-d193-401b-8fbf-3426e3bba665","page_size":[595,841],"block_position":"58-7"},{"bbox":[87,436,189,454],"type":"title","angle":0,"index":11,"text":"# 破坏不剥夺条件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":58,"id":"4acb7acb-9c2b-4215-974b-45447b3687c5","page_size":[595,841],"block_position":"58-8"},{"bbox":[111,516,226,532],"type":"title","angle":0,"index":12,"text":"# 破坏不可抢占条件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":58,"id":"1da8fab8-4838-4695-a34f-4eff5de7a175","page_size":[595,841],"block_position":"58-9"},{"bbox":[324,515,373,533],"type":"title","angle":0,"index":13,"text":"# 加曲闲干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":58,"id":"57868e35-5743-4b71-bf28-241909879e29","page_size":[595,841],"block_position":"58-10"},{"bbox":[282,536,334,559],"type":"text","angle":0,"index":15,"text":"打印机","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"255197b3-dd8d-4ad0-9475-97a10be6fd46","page_size":[595,841],"block_position":"58-11"},{"bbox":[116,560,363,601],"type":"text","angle":0,"index":16,"text":"如果它需要的绘图仪无法获得，而强制性的把它占有的打印机抢占掉，会引起一片混乱。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"015f9f82-d4c5-4074-b26f-2ec93b5a214a","page_size":[595,841],"block_position":"58-12"},{"bbox":[116,628,380,640],"type":"text","angle":0,"index":18,"text":"例如数据库中的记录是必须被锁定的，因此还是会出现死锁的可能","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"780e0bd0-6bbf-48cf-ac56-3fb88b5bc8e5","page_size":[595,841],"block_position":"58-13"}],[{"bbox":[111,74,403,85],"type":"text","angle":0,"index":0,"text":"不剥夺条件：进程所获得的资源在未使用完之前，不能由其他进程强行夺走，只能主动释放。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"4504a743-51ba-488c-8f89-5728edc50120","page_size":[595,841],"block_position":"59-0"},{"bbox":[111,93,167,101],"type":"text","angle":0,"index":1,"text":"破坏不剥夺条件：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"f7082e7d-e8b9-4bc6-a00c-21615b9fb2c5","page_size":[595,841],"block_position":"59-1"},{"bbox":[111,101,421,120],"type":"text","angle":0,"index":2,"text":"方案一：当某个进程请求新的资源得不到满足时，它必须立即释放保持的所有资源，待以后需要时再重新申请。也就是说，即使某些资源尚未使用完，也需要主动释放，从而破坏了不可剥夺条件。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"d1393c71-4b6d-4f6d-85ab-e9247a743aa9","page_size":[595,841],"block_position":"59-2"},{"bbox":[111,126,422,153],"type":"text","angle":0,"index":3,"text":"方案二：当某个进程需要的资源被其他进程所占有的时候，可以由操作系统协助，将想要的资源强行剥夺。这种方式一般需要考虑各进程的优先级（比如：剥夺调度方式，就是将处理机资源强行剥夺给优先级更高的进程使用）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"ce051473-050a-4a81-88c2-892e096f1a8f","page_size":[595,841],"block_position":"59-3"},{"bbox":[112,161,159,169],"type":"text","angle":0,"index":4,"text":"该策略的缺点：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"22bf45b2-b043-421e-9d4f-ad70976b52eb","page_size":[595,841],"block_position":"59-4"},{"bbox":[112,170,180,178],"type":"text","angle":0,"index":5,"text":"1.实现起来比较复杂。","id":"33eb8763-2eee-49e1-af73-8ef9e4495109","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"page_size":[595,841],"block_position":"59-5"},{"bbox":[111,179,420,195],"type":"text","angle":0,"index":6,"text":"2.释放已获得的资源可能造成前一阶段工作的失效。因此这种方法一般只适用于易保存和恢复状态的资源，如CPU。","id":"5afb12dc-7214-4133-b4b3-19d95945968e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"page_size":[595,841],"block_position":"59-6"},{"bbox":[111,196,302,204],"type":"text","angle":0,"index":7,"text":"3.反复地申请和释放资源会增加系统开销，降低系统吞吐量。","id":"07481344-8692-4677-9e40-88180f581a44","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"page_size":[595,841],"block_position":"59-7"},{"bbox":[111,204,420,222],"type":"text","angle":0,"index":8,"text":"4.若采用方案一，意味着只要暂时得不到某个资源，之前获得的那些资源就都需要放弃，以后再重新申请。如果一直发生这样的情况，就会导致进程饥饿。","id":"46ead481-1ddc-4203-b3d8-398c9467fd7a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"page_size":[595,841],"block_position":"59-8"},{"bbox":[88,285,176,303],"type":"title","angle":0,"index":10,"text":"# 破坏环路等待","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":59,"id":"97610ecf-4edc-4ca1-bb76-013c45f35eff","page_size":[595,841],"block_position":"59-9"},{"bbox":[126,333,215,349],"type":"title","angle":0,"index":11,"text":"# 破坏环路等待","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":59,"id":"338fd695-e913-47ff-9a35-81659d72d698","page_size":[595,841],"block_position":"59-10"},{"bbox":[348,333,399,350],"type":"title","angle":0,"index":12,"text":"# 九曲阑干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":59,"id":"313a964a-2f77-4c36-a277-746bad864e07","page_size":[595,841],"block_position":"59-11"},{"bbox":[126,361,381,415],"type":"text","angle":0,"index":13,"text":"个限制是不可接受的。","id":"22fcd8d2-5c54-4b4b-ad53-00f3f589d98e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"page_size":[595,841],"block_position":"59-12"},{"bbox":[126,423,383,450],"type":"text","angle":0,"index":14,"text":"","id":"c82ac489-c861-4a27-835b-104170ca01d3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"page_size":[595,841],"block_position":"59-13"},{"bbox":[114,500,361,514],"type":"text","angle":0,"index":16,"text":"循环等待条件：存在一种进程资源的循环等待链，链中的每一个进程已获得的资源同时被下一个进程所请求。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"e3322b3e-cab6-4108-804a-8cc3297ba9ea","page_size":[595,841],"block_position":"59-14"},{"bbox":[114,520,362,534],"type":"text","angle":0,"index":17,"text":"同类资源（即编号相同的资源）一次申请完。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"0c2867aa-12f4-4936-8ff3-4c51ada3dac0","page_size":[595,841],"block_position":"59-15"},{"bbox":[114,540,361,555],"type":"text","angle":0,"index":18,"text":"原理分析：一个进程只有已占有小编号的资源时，才有资格申请更大编号的资源。按此规则，已持有大编号资源的进程不可能逆向地回来申请小编号的资源，从而就不会产生循环等待的现象。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"0e285436-8395-467d-9713-8e5a887df808","page_size":[595,841],"block_position":"59-16"},{"bbox":[115,559,230,567],"type":"text","angle":0,"index":19,"text":"假设系统中共有10个资源，编号为1,2.....0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"f0e2fb17-95be-4d78-8aa3-18f6d1470b17","page_size":[595,841],"block_position":"59-17"},{"bbox":[202,571,255,627],"type":"text","angle":0,"index":23,"text":"在任何一个时刻，总","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"879f8a48-c983-46da-83da-6895aa6cabe5","page_size":[595,841],"block_position":"59-18"},{"bbox":[274,569,311,576],"type":"text","angle":0,"index":24,"text":"该策略的缺点：","id":"17794f2f-e8a4-40fd-b037-3a81cf2840cb","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"page_size":[595,841],"block_position":"59-19"},{"bbox":[274,576,360,590],"type":"text","angle":0,"index":25,"text":"1.不方便增加新的设备，因为可能需要重新分配所有的编号：","id":"c7215319-727d-4fca-95e7-24be9881865f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"page_size":[595,841],"block_position":"59-20"},{"bbox":[274,591,360,610],"type":"text","angle":0,"index":26,"text":"2.进程实际使用资源的顺序可能和编号递增顺序不一致，会导致资源浪费：","id":"8874d641-bd14-41df-9a03-2feb96fb1111","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"page_size":[595,841],"block_position":"59-21"},{"bbox":[274,611,360,624],"type":"text","angle":0,"index":27,"text":"3.必须按规定次序申请资源，用户编程麻烦。","id":"05ad14b7-fb63-4b30-859b-7d849510aeed","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"page_size":[595,841],"block_position":"59-22"},{"bbox":[88,684,202,701],"type":"title","angle":0,"index":29,"text":"# 死锁的检测和恢复","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":59,"id":"965b2237-6baf-4a66-a851-addf57a8ad39","page_size":[595,841],"block_position":"59-23"},{"bbox":[105,735,371,749],"type":"text","angle":0,"index":30,"text":"允许死锁发生，当检测到死锁发生后，采取措施进行恢复","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"47a6b627-2d94-4a60-82a1-d36e5b5346a2","page_size":[595,841],"block_position":"59-24"}],[{"bbox":[107,79,161,91],"type":"title","angle":0,"index":0,"text":"# 资源分配图","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":60,"id":"d56b841f-d248-4499-92b6-613cfc6c1199","page_size":[595,841],"block_position":"60-0"},{"bbox":[114,123,253,136],"type":"text","angle":0,"index":2,"text":"","id":"14627b5d-69d1-413c-a23a-447b63ec14a4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"page_size":[595,841],"block_position":"60-1"},{"bbox":[285,123,422,136],"type":"text","angle":0,"index":3,"text":"","id":"d5b3bc3e-4623-4e83-886c-649cf9033dac","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"page_size":[595,841],"block_position":"60-2"},{"bbox":[114,143,266,156],"type":"text","angle":0,"index":4,"text":"","id":"54c80c01-0555-41d1-9709-a4e67df7795a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"page_size":[595,841],"block_position":"60-3"},{"bbox":[286,143,422,155],"type":"text","angle":0,"index":5,"text":"","id":"eeee7b73-7e80-4bf8-8be5-7951674ba0b4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"page_size":[595,841],"block_position":"60-4"},{"bbox":[114,162,266,174],"type":"text","angle":0,"index":6,"text":"","id":"c5118eb4-89f7-435f-9fd2-589e6f2b011f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"page_size":[595,841],"block_position":"60-5"},{"bbox":[286,162,422,174],"type":"text","angle":0,"index":7,"text":"","id":"fd42d834-5098-46b1-8a5b-f546defd8f9b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"page_size":[595,841],"block_position":"60-6"},{"bbox":[114,179,266,191],"type":"text","angle":0,"index":8,"text":"","id":"6d9ea686-cd91-409d-869a-7c73eafcfc6b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"page_size":[595,841],"block_position":"60-7"},{"bbox":[115,199,262,312],"index":10,"angle":0,"type":"image","img_path":"/a50091297857e2b1224a61159ff70eb4337a875f10d412ce17db2333d8031833.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.24705882352941178,"page_idx":60,"id":"43678847-b43c-4951-b520-2ce177b9e456","page_size":[595,841],"block_position":"60-8"},{"bbox":[301,229,383,309],"index":11,"angle":0,"type":"image","img_path":"/349ba9a3d7fa4f8cc34076067b0cd985959b9ec55f5b10d7ebb10cc05c3364b3.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":60,"id":"382fc9f4-10c8-4196-bfc5-0b0da3726eab","page_size":[595,841],"block_position":"60-9"},{"bbox":[115,312,195,329],"index":12,"angle":0,"type":"image","img_path":"/69305d2d58e95736b744ed8dafcc3d06808b39f3111debe6318fe1f8209b17c1.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":60,"id":"48e3312c-6db6-4dda-a0b6-f3c9f2adf7fb","page_size":[595,841],"block_position":"60-10"},{"bbox":[338,313,348,323],"index":13,"angle":0,"type":"image_caption","text":"b)","id":"982c860e-7301-44b7-bddf-3a46faeca2af","color":{"line":"rgba(13, 83, 222 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"page_size":[595,841],"block_position":"60-11"},{"bbox":[115,330,176,347],"type":"title","angle":0,"index":14,"text":"# 死锁恢复","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":60,"id":"ffac4a69-54b1-4cf5-98e7-3a674f6ea73e","page_size":[595,841],"block_position":"60-12"},{"bbox":[248,327,390,351],"type":"title","angle":0,"index":15,"text":"# 力曲阑干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":60,"id":"0cdef84c-0832-4cdf-afdd-c518ce64a840","page_size":[595,841],"block_position":"60-13"},{"bbox":[120,371,264,384],"type":"text","angle":0,"index":17,"text":"抢占是否可行，取决于资源的类型","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"cb6d90c9-4b2d-409f-b2c1-0bba9c682c03","page_size":[595,841],"block_position":"60-14"},{"bbox":[119,409,258,421],"type":"text","angle":0,"index":19,"text":"周期性的对进程进行检查点检查。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"082b78da-5b8e-4ade-acdb-3755adedd8a9","page_size":[595,841],"block_position":"60-15"},{"bbox":[119,426,356,438],"type":"text","angle":0,"index":20,"text":"检查点检查就是把进程的状态写入一个文件以备以后重启","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"7e206e12-50df-4fd5-9d9e-c0fddf49284c","page_size":[595,841],"block_position":"60-16"},{"bbox":[106,484,168,497],"type":"text","angle":0,"index":22,"text":"1、撤销进程","id":"b6fb12a6-629d-4004-aedf-e3265fedaafb","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"page_size":[595,841],"block_position":"60-17"},{"bbox":[106,500,168,513],"type":"text","angle":0,"index":23,"text":"2、抢占资源","id":"5f251701-2d2c-4dce-8e00-a604fa333b4f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"page_size":[595,841],"block_position":"60-18"},{"bbox":[124,515,207,528],"type":"text","angle":0,"index":25,"text":"1、利用抢占恢复","id":"b39db60c-8fac-4799-87d9-b2a03d958f2c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"page_size":[595,841],"block_position":"60-19"},{"bbox":[124,531,207,544],"type":"text","angle":0,"index":26,"text":"2、利用回滚恢复","id":"eecf3f3b-b048-4fbf-b801-8cb9c7c32849","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"page_size":[595,841],"block_position":"60-20"},{"bbox":[88,546,164,559],"type":"text","angle":0,"index":28,"text":"死锁的数学公式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"1d114fd5-9f25-4dd7-a491-5e7e4c9f6d0b","page_size":[595,841],"block_position":"60-21"},{"bbox":[88,562,184,575],"type":"text","angle":0,"index":29,"text":"1. 死锁条件公式推导","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"a3e4c273-8e69-4621-9393-36c34dc60f63","page_size":[595,841],"block_position":"60-22"},{"bbox":[88,577,136,590],"type":"text","angle":0,"index":30,"text":"系统参数：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"b784bab4-7c9a-465f-9553-2be4fb7641b8","page_size":[595,841],"block_position":"60-23"},{"bbox":[88,593,139,606],"type":"text","angle":0,"index":31,"text":"N：进程数","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"2d1aa8e4-a276-48d6-8af4-da37ab1b7376","page_size":[595,841],"block_position":"60-24"},{"bbox":[88,608,214,621],"type":"text","angle":0,"index":32,"text":"W：每个进程最大资源需求","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"765c05ca-efbc-4fde-becb-02d2cb5f9a95","page_size":[595,841],"block_position":"60-25"},{"bbox":[88,624,173,637],"type":"text","angle":0,"index":33,"text":"M：系统资源总数","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"0ba1d7a2-464b-4747-97f3-897753224450","page_size":[595,841],"block_position":"60-26"},{"bbox":[88,640,237,653],"type":"text","angle":0,"index":34,"text":"最小安全资源数： $\\mathsf { M } \\geq \\mathsf { N } \\times ( \\mathsf { W } - 1 ) + 1$","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"e559ba03-98cd-4525-90f1-fa769db2fdba","page_size":[595,841],"block_position":"60-27"},{"bbox":[88,655,136,668],"type":"text","angle":0,"index":35,"text":"逻辑证明：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"7c9aa3f7-1e33-48a4-a35d-feccbd39a56c","page_size":[595,841],"block_position":"60-28"},{"bbox":[88,671,307,684],"type":"text","angle":0,"index":36,"text":"每个进程获得(W−1)个资源（共占用 N×(W−1)个）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"c0da1445-42b4-44b0-a2b1-2fddc923a248","page_size":[595,841],"block_position":"60-29"},{"bbox":[88,687,184,699],"type":"text","angle":0,"index":37,"text":"系统至少剩1个资源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"c99e91fb-f16e-428d-bd5c-26d34b88d177","page_size":[595,841],"block_position":"60-30"},{"bbox":[88,702,268,714],"type":"text","angle":0,"index":38,"text":"该剩余资源可分配给任一进程使其完成","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"30ae4d5b-f093-4aeb-a4eb-33ffa143e443","page_size":[595,841],"block_position":"60-31"},{"bbox":[88,718,292,730],"type":"text","angle":0,"index":39,"text":"完成进程释放W个资源，保障其他进程执行","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"f8ea6495-2e6e-4eb0-b66f-84ff5f4a28a9","page_size":[595,841],"block_position":"60-32"}],[{"bbox":[88,84,123,103],"type":"title","angle":0,"index":0,"text":"# 管程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":61,"id":"f266bb0d-c99b-419e-8ad7-e1be33e5c506","page_size":[595,841],"block_position":"61-0"},{"bbox":[86,139,315,153],"type":"text","angle":0,"index":1,"text":"和之前的PV操作一样，实现进程间的互斥和同步","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"690ecbc0-a119-4235-8dc8-3e5199dbcdae","page_size":[595,841],"block_position":"61-1"},{"bbox":[87,155,234,168],"type":"text","angle":0,"index":2,"text":"1、局部于管程的共享数据结构","id":"c82359b3-31a6-43ca-8ae8-c5d44178000f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"page_size":[595,841],"block_position":"61-2"},{"bbox":[87,171,276,184],"type":"text","angle":0,"index":3,"text":"2、 对于该数据结构进行操作的一组过程","id":"1ecc7961-d7c1-41c4-a742-0dfde2754164","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"page_size":[595,841],"block_position":"61-3"},{"bbox":[87,186,286,199],"type":"text","angle":0,"index":4,"text":"3、对于局部于共享数据设置初始值的语句","id":"f9790dd0-a570-4e15-a467-f2d5641f1c49","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"page_size":[595,841],"block_position":"61-4"},{"bbox":[87,202,160,214],"type":"text","angle":0,"index":6,"text":"4、管程的名字","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"e9d34cc9-ca82-4540-89bb-d351881d6223","page_size":[595,841],"block_position":"61-5"},{"bbox":[87,217,136,230],"type":"text","angle":0,"index":7,"text":"基本特征：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"c2b09276-e89e-42a0-9496-db57ea33f7f1","page_size":[595,841],"block_position":"61-6"},{"bbox":[87,232,503,261],"type":"text","angle":0,"index":8,"text":"1、局部于管程的数据结构只能被管城内的过程访问，任何外部过程不能访问，而管程内的过程也只能访问该管程内的数据结构","id":"6acf4278-776e-49db-a6fa-c86d22b97a51","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"page_size":[595,841],"block_position":"61-7"},{"bbox":[86,264,503,293],"type":"text","angle":0,"index":9,"text":"2、一个进程若想访问管程内的数据结构（共享资源）们只能通过调用管程内地某个过程实现间接访问","id":"fbbcbec1-2dab-41cd-bc25-cf5722d6e98c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"page_size":[595,841],"block_position":"61-8"},{"bbox":[86,296,503,323],"type":"text","angle":0,"index":10,"text":"3、任意时刻，管程中只能有一个进程在管程中执行管程的某个过程，其它任何调用管程的进程都将被阻塞，直到管程变成可用，这一特性使管程能有效地实现互斥","id":"3f13c691-4c98-41c5-8b9a-428948275aa7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"page_size":[595,841],"block_position":"61-9"},{"bbox":[98,324,266,333],"type":"text","angle":0,"index":12,"text":"引入管程的目的无非就是要更方便地实现进程互斥和同步。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"f3684947-a17f-42a1-9dd7-f4efc560e638","page_size":[595,841],"block_position":"61-10"},{"bbox":[98,340,284,349],"type":"text","angle":0,"index":13,"text":"1.需要在管程中定义共享数据（如生产者消费者问题的缓冲区）","id":"6db373ac-c0ee-41c7-aa30-3635d308ac94","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"page_size":[595,841],"block_position":"61-11"},{"bbox":[98,349,377,364],"type":"text","angle":0,"index":14,"text":"2.需要在管程中定义用于访问这些共享数据的“入口”一一其实就是一些函数（如生产者消费者问题中，可以定义一个函数用于将产品放入缓冲区，再定义一个函数用于从缓冲区取出产品）","id":"983bcc2d-8ad5-4d17-bf48-5c124e5fd186","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"page_size":[595,841],"block_position":"61-12"},{"bbox":[98,364,248,372],"type":"text","angle":0,"index":15,"text":"","id":"73280e17-43ea-4421-8150-912d6ae7ce65","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"page_size":[595,841],"block_position":"61-13"},{"bbox":[98,373,378,402],"type":"text","angle":0,"index":16,"text":"入（如生产者消费者问题中，各进程需要互斥地访问共享缓冲区。管程的这种特性即可保证一个时间段内最多只会有一个进程在访问缓冲区。注意：这种互斥特性是由编译器负责实现的，","id":"68f50033-e87a-4c5c-b6d1-30af1727e662","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"page_size":[595,841],"block_position":"61-14"},{"bbox":[98,403,380,428],"type":"text","angle":0,"index":17,"text":"5.可在管程中设置条件变量及等待/唤醒操作以解决同步问题。可以让一个进程或线程在条件变量等待在条件变量上的进程或线程唤醒。","id":"bc72adaa-0236-46a1-aef0-c0363c7237f2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"page_size":[595,841],"block_position":"61-15"},{"bbox":[97,434,378,451],"type":"text","angle":0,"index":19,"text":"程序员可以用某种特殊的语法定义一个管程（比如：:monitor ProducerConsumer..endmonitor;），之后其他程序员就可以使用这个管程提供的特定“入口”很方便地使用实现进程同步/互斥了。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"9cd2ee6b-cdee-484e-965c-a9f3658f8a59","page_size":[595,841],"block_position":"61-16"},{"bbox":[121,485,210,497],"type":"text","angle":0,"index":20,"text":"量好课v：IT-aixuexi","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"81d8171d-0d7e-4d81-ad4e-2514fd443e86","page_size":[595,841],"block_position":"61-17"},{"bbox":[440,497,508,521],"type":"text","angle":0,"index":22,"text":"九曲闲干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"dbcf3c9b-63c9-4f9c-bce5-eb645023ef54","page_size":[595,841],"block_position":"61-18"},{"bbox":[139,538,343,568],"type":"text","angle":0,"index":23,"text":"管程的基本思想是：把信号量和操作原语封装在一个对象的内部","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"537b52c3-0661-43a2-b0b6-496b0d89f46b","page_size":[595,841],"block_position":"61-19"},{"bbox":[139,583,356,613],"type":"text","angle":0,"index":24,"text":"也就是把共享变量和共享变量能够进行的所有操作集中在一个模块中","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"489c7241-cb8c-4c1c-985e-723a09905731","page_size":[595,841],"block_position":"61-20"},{"bbox":[141,631,358,677],"type":"text","angle":0,"index":25,"text":"管程是一个由过程、变量及数据结构等组成的一个集合，它们组成了一个特殊的模块","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"9ac33d3d-d1b7-4fbf-a22e-8ba297a8043c","page_size":[595,841],"block_position":"61-21"},{"bbox":[389,542,454,553],"type":"text","angle":0,"index":26,"text":"monitor example","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"a9edac36-aa6d-4035-a97c-030c53e9fd9c","page_size":[595,841],"block_position":"61-22"},{"bbox":[411,554,446,563],"type":"text","angle":0,"index":27,"text":"integeri;","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"cd70ca22-1b07-41c4-9e19-81dd6723bd2c","page_size":[595,841],"block_position":"61-23"},{"bbox":[411,565,458,573],"type":"text","angle":0,"index":28,"text":"condition c;","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"35cca435-90c9-4649-8c56-1faea7ea3557","page_size":[595,841],"block_position":"61-24"},{"bbox":[411,584,499,595],"type":"text","angle":0,"index":29,"text":"procedure producer();","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"c4b3169e-bd65-4787-9b8a-ed44aab8a2a8","page_size":[595,841],"block_position":"61-25"},{"bbox":[414,614,431,624],"type":"text","angle":0,"index":30,"text":"end:","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"b6e49af8-aa4c-4d24-9715-3db2bf8e92e8","page_size":[595,841],"block_position":"61-26"},{"bbox":[414,638,503,648],"type":"text","angle":0,"index":31,"text":"procedure consumer();","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"dff67827-327d-4d91-82b8-225b69b3695b","page_size":[595,841],"block_position":"61-27"},{"bbox":[414,657,431,666],"type":"text","angle":0,"index":32,"text":"end:","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"056d5b31-a7fb-4f6a-bb4f-3b2bdc3740cb","page_size":[595,841],"block_position":"61-28"},{"bbox":[389,669,441,677],"type":"text","angle":0,"index":33,"text":"end monitor;","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"1def0f1e-36a2-4b68-ba09-c3e6a06728e9","page_size":[595,841],"block_position":"61-29"}],[{"bbox":[114,108,289,150],"type":"text","angle":0,"index":1,"text":"进程可以在任何需要的时候调用管程中的过程管程结构确保每次只有一个进程在管程内处于活动状态。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"3658c98e-f884-4481-8bfa-ee0ed9b2b335","page_size":[595,841],"block_position":"62-0"},{"bbox":[115,192,284,219],"type":"text","angle":0,"index":3,"text":"编译器必须要识别管程并用某种方式对其互斥做出安排","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"9c95f659-39ce-48eb-ad59-21dfb2192341","page_size":[595,841],"block_position":"62-1"},{"bbox":[115,229,305,255],"type":"text","angle":0,"index":4,"text":"因此，管程比信号量更容易保证并行编程的正确性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"676baafa-92ad-4f90-bce4-6528bcdb0eea","page_size":[595,841],"block_position":"62-2"},{"bbox":[307,103,452,251],"index":5,"angle":0,"type":"image","img_path":"/b0d562b01db034b4688bd5a3b381da70dbbce5e4a22d9dcbe579bb2efa2f8e9d.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.24369747899159663,"page_idx":62,"id":"9c01add5-200a-4ea4-b918-4180e2dddf24","page_size":[595,841],"block_position":"62-3"},{"bbox":[106,281,358,295],"type":"title","angle":0,"index":7,"text":"# 管程里的 wait 和 signal 和之前的 wait 和 signal 并不一样","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":62,"id":"9d7f8def-fc4b-49ac-b2fa-7dde3e32b0aa","page_size":[595,841],"block_position":"62-4"},{"bbox":[117,298,386,333],"type":"text","angle":0,"index":8,"text":"wait/condition ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"6348bc05-2c58-4dca-9a07-4b8b7609ce3e","page_size":[595,841],"block_position":"62-5"},{"bbox":[117,336,340,349],"type":"text","angle":0,"index":9,"text":"对于条件变量x，只有操作wait(和signal(可以调用","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"5eaeafba-fcca-4fd8-bfa1-a182ef43f4d9","page_size":[595,841],"block_position":"62-6"},{"bbox":[117,353,334,370],"type":"text","angle":0,"index":10,"text":"对于操作.wait 调用这一操作的进程会被挂起","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"da854a65-c674-4518-8279-073735d5819e","page_size":[595,841],"block_position":"62-7"},{"bbox":[341,350,385,371],"index":11,"angle":0,"type":"image","img_path":"/c0b922245a7643b327dc7d527ee8768a992815da12af61eee229bf24da66bd7e.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":62,"id":"9ffe3be6-3f2b-49f9-b0a9-c0447f69cb73","page_size":[595,841],"block_position":"62-8"},{"bbox":[119,373,288,391],"type":"text","angle":0,"index":12,"text":"一直到另外一个进程调用x.signalOQ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"574c7bfa-b1da-4b9f-9a11-5f9cf02c41ae","page_size":[595,841],"block_position":"62-9"},{"bbox":[119,396,385,417],"type":"text","angle":0,"index":13,"text":"如果没有挂起进程，那么操作signal就没有作用，也就是说x的态如同没有执行任何操作。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"24e36ef7-2627-4e3b-99b7-45e43fdadbc9","page_size":[595,841],"block_position":"62-10"},{"bbox":[88,470,154,489],"type":"title","angle":0,"index":15,"text":"# 内存管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":62,"id":"90dcab5c-6a03-43eb-850b-aeea7b62d879","page_size":[595,841],"block_position":"62-11"},{"bbox":[105,526,192,539],"type":"text","angle":0,"index":16,"text":"内存的分配与回收","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"86968e97-3f5a-4b34-a744-83549b46e686","page_size":[595,841],"block_position":"62-12"},{"bbox":[105,542,150,555],"type":"text","angle":0,"index":17,"text":"地址映射","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"1e9fe569-5277-4556-ad68-2a56e1cf0519","page_size":[595,841],"block_position":"62-13"},{"bbox":[104,557,504,602],"type":"text","angle":0,"index":18,"text":"编译器在对程序进行编译的时候，通常从 0开始为程序代码编址，程序中设计的所有地址都是相对起始地址0确定的，这种地址称为虚地址、相对地址或逻辑地址。相应地，这些地址构成的地址空间称为虚地址空间、程序空间或者逻辑地址空间。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"be8acd10-6b60-473a-9970-eae82a3db5b2","page_size":[595,841],"block_position":"62-14"},{"bbox":[104,604,504,664],"type":"text","angle":0,"index":19,"text":"当程序加载到内存中时，通常不是从 0开始的内存空间，程序在物理内存中的空间称为实地址、绝对地址或者物理地址，构成的地址空间称为是地址空间、内存空间或物理空间。虚地址空间可能是一维的连续空间，也可能是二维的非线性空间，这是存储器管理方式所决定的。而实地址空间总是一维线性的。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"d93d2442-191d-4914-a276-7f77a33ff100","page_size":[595,841],"block_position":"62-15"},{"bbox":[104,666,503,695],"type":"text","angle":0,"index":20,"text":"程序运行过程中使用的地址都是虚地址，而程序加载到物理内存的实际地址往往与虚地址不同，因此虚地址不能直接用于访存。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"6f609ffc-3e6e-4e4f-b8ef-6ef7c0b7b6ac","page_size":[595,841],"block_position":"62-16"},{"bbox":[104,698,500,711],"type":"text","angle":0,"index":21,"text":"这个从虚地址映射到实际物理地址的地址转换功能称为地址映射，又称为地址重定位。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"6956e614-fe4d-44eb-a616-00ae1372132b","page_size":[595,841],"block_position":"62-17"},{"bbox":[104,714,465,727],"type":"text","angle":0,"index":22,"text":"这个过程应该由操作系统负责，这样程序员只需要关注指令、数据的逻辑地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"98e70c97-100b-46d3-80fc-66bfa6bd4c34","page_size":[595,841],"block_position":"62-18"},{"bbox":[105,729,181,742],"type":"text","angle":0,"index":23,"text":"程序运行过程中","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"79cb4f9a-1018-4c73-a8f4-9a9903647ad2","page_size":[595,841],"block_position":"62-19"},{"bbox":[105,745,192,757],"type":"text","angle":0,"index":24,"text":"内存的共享和保护","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"501d62cd-306d-4388-bf99-6c3cdf2c514c","page_size":[595,841],"block_position":"62-20"}],[{"bbox":[107,79,151,91],"type":"text","angle":0,"index":0,"text":"内存扩充","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"b881a327-3e4a-49c8-a89b-fcb19bdba0cc","page_size":[595,841],"block_position":"63-0"},{"bbox":[88,95,465,108],"type":"text","angle":0,"index":1,"text":"32位机器的4GB限制主要指虚拟地址空间，这是程序能直接“看到”的最大范围。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"0a6da632-de03-47e0-ba6b-4c4f72b27577","page_size":[595,841],"block_position":"63-1"},{"bbox":[88,128,170,147],"type":"title","angle":0,"index":2,"text":"# 什么是内存","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":63,"id":"5ed1d7d6-52ae-4d4f-a2f9-aea67f4f75f1","page_size":[595,841],"block_position":"63-2"},{"bbox":[88,184,248,196],"type":"text","angle":0,"index":3,"text":"内存中保存代码的指令和相关数据","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"eb4d0955-5b02-41ef-a0b8-baded912db89","page_size":[595,841],"block_position":"63-3"},{"bbox":[88,215,153,227],"type":"title","angle":0,"index":4,"text":"# 根据物理地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":63,"id":"1094552f-8e18-45b6-b193-b4556831adec","page_size":[595,841],"block_position":"63-4"},{"bbox":[88,228,354,370],"index":5,"angle":0,"type":"image","img_path":"/3b8846f257f288d43610b143b5f152649eb6709029c352d5b30dbee39017eedc.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4470588235294118,"page_idx":63,"id":"5633700f-7902-4b7e-a23b-c3b0af7c4b30","page_size":[595,841],"block_position":"63-5"},{"bbox":[88,371,153,383],"type":"title","angle":0,"index":6,"text":"# 基于虚拟寻址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":63,"id":"45464a9a-0e95-4d71-ba6b-4b3494f1573b","page_size":[595,841],"block_position":"63-6"},{"bbox":[88,384,329,526],"index":7,"angle":0,"type":"image","img_path":"/0f1f9f382779a43e0c29091c649e535542bc18dfac7225928bd5ac2bc897881f.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4050420168067227,"page_idx":63,"id":"6f21fd14-b2ad-4368-bc8b-6b25fe144a59","page_size":[595,841],"block_position":"63-7"},{"bbox":[105,543,258,555],"type":"text","angle":0,"index":8,"text":"CPU发出的地址是逻辑/虚拟地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"46936208-1178-4e0e-a9aa-44002f63ac35","page_size":[595,841],"block_position":"63-8"},{"bbox":[105,558,329,571],"type":"text","angle":0,"index":9,"text":"但对于主存希望得到访存的地址依然是物理地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"771776af-fbd4-4073-a230-0d203b8be592","page_size":[595,841],"block_position":"63-9"},{"bbox":[105,573,410,586],"type":"text","angle":0,"index":10,"text":"将虚拟地址转换成物理地址，翻译的部件叫做MMU 内存管理单元","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"c2cf7b79-ffd9-4ef6-8742-863ec9f34f1d","page_size":[595,841],"block_position":"63-10"},{"bbox":[95,589,174,602],"type":"text","angle":0,"index":11,"text":"（虚拟）地址空间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"6da0c811-1b95-43fc-acf1-d1ecff614eab","page_size":[595,841],"block_position":"63-11"},{"bbox":[105,606,161,617],"type":"text","angle":0,"index":12,"text":"{0，1，2….}","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"6e72206b-af99-499c-b837-bf36f393d5e1","page_size":[595,841],"block_position":"63-12"},{"bbox":[105,620,318,632],"type":"text","angle":0,"index":13,"text":"虚拟地址空间最大值，取决于虚拟地址的位数","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"4dc4c2ef-df58-4f96-aad1-f7c881cf531f","page_size":[595,841],"block_position":"63-13"},{"bbox":[105,636,250,648],"type":"text","angle":0,"index":14,"text":"虚拟地址的位数取决于什么呢？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"069bf167-f63e-4d07-8f9a-e272f90a871a","page_size":[595,841],"block_position":"63-14"},{"bbox":[87,651,367,664],"type":"text","angle":0,"index":15,"text":"处理器设计时定义了地址总线的位数（或虚拟地址的位数）。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"05aa2c2c-9b34-4962-9e03-3b0d8cd62ff4","page_size":[595,841],"block_position":"63-15"},{"bbox":[105,667,433,680],"type":"text","angle":0,"index":16,"text":"32 位机器通常指处理器具有 32 位的通用寄存器、数据总线和地址总线。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"20f603b9-1cc5-4f7e-b726-28fc321b8254","page_size":[595,841],"block_position":"63-16"},{"bbox":[105,683,289,695],"type":"text","angle":0,"index":17,"text":"32位机器（处理器），最大地址2^32-1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"9799a265-17b0-414c-af45-c6b81d28bacc","page_size":[595,841],"block_position":"63-17"},{"bbox":[105,698,279,710],"type":"text","angle":0,"index":18,"text":"物理地址空间大小 取决于内存的大小","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"c19be9c0-887d-485f-a796-6416adafb5da","page_size":[595,841],"block_position":"63-18"},{"bbox":[105,714,264,726],"type":"text","angle":0,"index":19,"text":"4G内存条——就有4G的内存空间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"a57ee215-2c7d-463a-9aae-5bf0eab9bcc4","page_size":[595,841],"block_position":"63-19"},{"bbox":[105,729,371,742],"type":"text","angle":0,"index":20,"text":"但绝不是操作系统使用的就是 4GB（并不是最大支持 4GB）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"24808625-808d-439f-ba3e-ed6a7b893a9f","page_size":[595,841],"block_position":"63-20"}],[{"bbox":[106,75,487,256],"index":0,"angle":0,"type":"image","img_path":"/63375c2c6f0f6cf2e38b62f6d9d7236db03c07e0f1e3d92b626dedb591b8c785.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6403361344537815,"page_idx":64,"id":"ebd515f7-b1ad-42c6-a233-66970de4937a","page_size":[595,841],"block_position":"64-0"},{"bbox":[106,293,566,480],"index":1,"angle":0,"type":"image","img_path":"/edd06b543d92d2516f3b6a560e2e263477c7d62cf13019a07ed33e355db2e395.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.773109243697479,"page_idx":64,"id":"73e888a7-87b5-40e0-a7df-011ad0eb96f6","page_size":[595,841],"block_position":"64-1"},{"bbox":[106,483,276,497],"type":"text","angle":0,"index":2,"text":"在编译的过程中会有虚拟地址的概念","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"89c77c02-7891-4c6a-b514-e25f107fa0ce","page_size":[595,841],"block_position":"64-2"},{"bbox":[106,499,320,512],"type":"text","angle":0,"index":3,"text":"这是hello.o的反汇编，并没有赋予地址的概念","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"002c4bed-72b1-4415-81d3-09dc0ef6d57a","page_size":[595,841],"block_position":"64-3"},{"bbox":[108,513,571,626],"index":4,"angle":0,"type":"image","img_path":"/712ba817af181eba81296371ffb828a8f278fcebaa0dfda34084a5758a35e9a4.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7781512605042017,"page_idx":64,"id":"f2b9ecae-3297-429d-8c27-870e35ae6ef4","page_size":[595,841],"block_position":"64-4"},{"bbox":[105,640,261,653],"type":"text","angle":0,"index":5,"text":"然而 hello 的反汇编，赋予了地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"e2f52ed4-8f5e-4425-a979-98bb3b3cb7e4","page_size":[595,841],"block_position":"64-5"}],[{"bbox":[106,75,561,255],"index":0,"angle":0,"type":"image","img_path":"/8bcf53c8e6d83031127e5915dfee518e582520617eb66c9a852f422a049011a0.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7647058823529411,"page_idx":65,"id":"0edc7d87-d5d9-4285-92bb-b2aa04e845a5","page_size":[595,841],"block_position":"65-0"},{"bbox":[105,265,246,279],"type":"text","angle":0,"index":1,"text":"好像是一个地址对应一个字节","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"626eb96f-dc31-4a64-b6b9-b3a6b9799c2d","page_size":[595,841],"block_position":"65-1"},{"bbox":[105,281,308,295],"type":"text","angle":0,"index":2,"text":"CPU 在执行这些指令，读写的都是虚拟地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"57c84f9a-7f36-4793-b9d4-57671c84a055","page_size":[595,841],"block_position":"65-2"},{"bbox":[105,296,423,310],"type":"text","angle":0,"index":3,"text":"0x200af5(%rip)，得到的是虚拟地址，还要经过 MMU 转换成物理地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"8c68b94f-cbc3-4a7f-b893-28242b91538e","page_size":[595,841],"block_position":"65-3"},{"bbox":[105,312,277,326],"type":"text","angle":0,"index":4,"text":"我就不需要考虑 4G/8G 等等内存大小","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"5da66c5f-d1db-4970-8091-b52c5fa9aa76","page_size":[595,841],"block_position":"65-4"},{"bbox":[105,327,235,341],"type":"text","angle":0,"index":5,"text":"进程独占一个虚拟地址空间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"c7ae0d24-e5e3-4855-99fc-723d9eb708d2","page_size":[595,841],"block_position":"65-5"},{"bbox":[106,356,391,602],"index":6,"angle":0,"type":"image","img_path":"/540f8a0fe415c230d4e8c455a965d73de52c4fd19b6fed10b71b7cf9af225bf2.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4789915966386555,"page_idx":65,"id":"184a829c-59a3-4a2e-90de-5c53dd6b3897","page_size":[595,841],"block_position":"65-6"},{"bbox":[87,642,220,662],"type":"title","angle":0,"index":7,"text":"# 程序的装入和链接","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":65,"id":"09dd6ba1-bd80-4af2-98f1-7e5503e0d7fc","page_size":[595,841],"block_position":"65-7"},{"bbox":[105,698,261,711],"type":"text","angle":0,"index":8,"text":"如何把逻辑地址转换为物理地址？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"a11f9ce9-29e6-4dae-bfc4-9984c6ebb277","page_size":[595,841],"block_position":"65-8"},{"bbox":[141,714,206,726],"type":"text","angle":0,"index":9,"text":"1、绝对装入","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"c31a987c-ae4d-4301-8e81-18486d68f606","page_size":[595,841],"block_position":"65-9"},{"bbox":[158,729,505,758],"type":"text","angle":0,"index":10,"text":"在编译时，编译程序将产生绝对地址的目标代码，装入程序按照装入模块中的地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"ae818721-42b4-4d0a-a852-7e08535d1c2b","page_size":[595,841],"block_position":"65-10"}],[{"bbox":[141,79,214,91],"type":"title","angle":0,"index":0,"text":"# 2、静态重定位","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":66,"id":"0b4a5c42-2cec-4095-89ed-0af4250959bd","page_size":[595,841],"block_position":"66-0"},{"bbox":[159,94,383,122],"type":"text","angle":0,"index":1,"text":"把地址重定位放在装入模块到内存的适当位置时不能移动位置","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"d6955f9b-a8a4-414a-8f45-27cdf473b669","page_size":[595,841],"block_position":"66-1"},{"bbox":[142,126,214,138],"type":"title","angle":0,"index":2,"text":"# 3、动态重定位","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":66,"id":"8bcd9c66-0eaf-4993-a06e-e52b2e090758","page_size":[595,841],"block_position":"66-2"},{"bbox":[160,141,225,153],"type":"text","angle":0,"index":3,"text":"重定位寄存器","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"c420dd81-d862-4f58-8515-21f9a62b5d14","page_size":[595,841],"block_position":"66-3"},{"bbox":[159,156,504,185],"type":"text","angle":0,"index":4,"text":"真正执行指令时，再将指令本身那个或指令中操作数的逻辑地址转换为物理地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"198a1ee5-69ab-438b-a694-182e33ef36fc","page_size":[595,841],"block_position":"66-4"},{"bbox":[160,188,289,200],"type":"text","angle":0,"index":5,"text":"允许程序在内存中发生移动","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"77cd453e-ac10-40ee-ab74-a85fe9951412","page_size":[595,841],"block_position":"66-5"},{"bbox":[105,203,339,216],"type":"text","angle":0,"index":6,"text":"需要一个数据结构将虚拟地址和物理地址对应关系","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"eaf19719-5851-4f33-925e-c12106481ecb","page_size":[595,841],"block_position":"66-6"},{"bbox":[105,219,349,232],"type":"text","angle":0,"index":7,"text":"页表，放在内存里，记录虚拟页和物理页的映射关系","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"6b7f647c-9fec-48f5-85f8-9801f6bb7129","page_size":[595,841],"block_position":"66-7"},{"bbox":[106,235,214,248],"type":"text","angle":0,"index":8,"text":"内存空间的分配与回收","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"03ddb184-da9d-4289-b2b2-ac72baffec8e","page_size":[595,841],"block_position":"66-8"},{"bbox":[106,250,245,263],"type":"text","angle":0,"index":9,"text":"从逻辑上对内存空间进行扩充","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"2496b5b8-7cb8-4b49-a398-336fa3343c0d","page_size":[595,841],"block_position":"66-9"},{"bbox":[105,265,472,279],"type":"text","angle":0,"index":10,"text":"负责逻辑地址和物理地址转换——三种装入方式页式存储/段式存储 动态重定位","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"ac774eb4-bd08-4c5d-b201-da8da1102e9e","page_size":[595,841],"block_position":"66-10"},{"bbox":[105,281,505,310],"type":"text","angle":0,"index":11,"text":"内存保护 设置上下限寄存器2、重定位寄存器（基址寄存器）和界地址寄存器（限长寄存器）进行越界检查","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"9f8f2cc9-7750-4aa4-8702-ec8264dd2729","page_size":[595,841],"block_position":"66-11"},{"bbox":[105,312,308,326],"type":"text","angle":0,"index":12,"text":"重定位寄存器存放到时进程的实际物理地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"e8726900-6d78-47c8-af9c-5209f4d0c001","page_size":[595,841],"block_position":"66-12"},{"bbox":[105,328,287,341],"type":"text","angle":0,"index":13,"text":"界地址寄存器中存放的是最大物理地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"43e7d568-744c-4103-b6bc-519e3127f0b8","page_size":[595,841],"block_position":"66-13"},{"bbox":[87,408,235,428],"type":"title","angle":0,"index":14,"text":"# 连续存储器管理方式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":66,"id":"f4242ec4-8648-4d0e-8bfb-50fef79130e8","page_size":[595,841],"block_position":"66-14"},{"bbox":[93,476,163,487],"type":"text","angle":0,"index":15,"text":"-单一连续分区","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"5d670849-936f-42fc-ae12-be0ff8b204c8","page_size":[595,841],"block_position":"66-15"},{"bbox":[95,490,143,502],"type":"text","angle":0,"index":16,"text":"－固定分区","id":"e931fa32-01eb-4b09-9dda-2043ce1554d6","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"page_size":[595,841],"block_position":"66-16"},{"bbox":[95,503,143,515],"type":"text","angle":0,"index":17,"text":"-动态分区","id":"8648a96d-0120-4f2b-acd7-9cfaec673bb3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"page_size":[595,841],"block_position":"66-17"},{"bbox":[95,517,163,528],"type":"text","angle":0,"index":18,"text":"-分页存储管理","id":"01a3ab10-05ef-481e-895d-c4f7b0415402","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"page_size":[595,841],"block_position":"66-18"},{"bbox":[95,530,163,542],"type":"text","angle":0,"index":19,"text":"-分段存储管理","id":"7e94106f-c148-4514-8172-5e00fdfafcb7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"page_size":[595,841],"block_position":"66-19"},{"bbox":[95,544,173,556],"type":"text","angle":0,"index":20,"text":"－段页式存储管理","id":"0af992df-5c8e-450d-b064-7c89b3b01e6d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"page_size":[595,841],"block_position":"66-20"},{"bbox":[95,558,143,570],"type":"text","angle":0,"index":21,"text":"-请求调页","id":"e4694a97-58f8-445b-b233-6661317bdc59","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"page_size":[595,841],"block_position":"66-21"},{"bbox":[95,572,143,583],"type":"text","angle":0,"index":22,"text":"-请求调段","id":"4c43d3af-76a9-424a-b135-0b0eafb76117","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"page_size":[595,841],"block_position":"66-22"},{"bbox":[95,585,154,597],"type":"text","angle":0,"index":23,"text":"-请求段页式","id":"4ba40624-f6ec-46a8-8ac5-aebfb3ea4f9a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"page_size":[595,841],"block_position":"66-23"},{"bbox":[190,501,252,512],"type":"text","angle":0,"index":25,"text":"提高内存利用率","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"95ba9c5f-218c-44ad-92cf-51c4022af25e","page_size":[595,841],"block_position":"66-24"},{"bbox":[190,531,226,542],"type":"text","angle":0,"index":26,"text":"方便用户","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"1f4345ba-955a-473f-9e02-4b8934d5a69c","page_size":[595,841],"block_position":"66-25"},{"bbox":[189,547,308,557],"type":"text","angle":0,"index":27,"text":"既提高内存利用率，又方便用户","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"83404b93-408b-4824-bfe3-d1a710096455","page_size":[595,841],"block_position":"66-26"},{"bbox":[188,560,312,579],"type":"text","angle":0,"index":28,"text":"逻辑上扩充内存，实现虚拟存储器方便用户运行大程序","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"795019ee-b468-475e-9061-a14d8bfa094c","page_size":[595,841],"block_position":"66-27"},{"bbox":[188,579,312,594],"type":"text","angle":0,"index":29,"text":"提高内存作业道数，从而进一步提高资源利用率","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"f1d83ea3-4e38-4df6-9f9d-02209294d217","page_size":[595,841],"block_position":"66-28"},{"bbox":[88,625,174,641],"type":"title","angle":0,"index":30,"text":"# 单一连续分区","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":66,"id":"e2586510-e0f7-4bce-b988-4441ba43c339","page_size":[595,841],"block_position":"66-29"},{"bbox":[105,676,371,688],"type":"text","angle":0,"index":31,"text":"内存被分为系统区和用户区，内存中只能有一道用户程序","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"a646cc44-33f7-44d2-bd05-8ab90e8cc651","page_size":[595,841],"block_position":"66-30"}],[{"bbox":[111,79,340,322],"index":0,"angle":0,"type":"image","img_path":"/0669ce2db670f7fd40801eeb76a2d9af007f5f36047f4dc1ba8c63b5e3530caf.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.38487394957983195,"page_idx":67,"id":"4da4cb90-7359-4b28-a149-05605f02489b","page_size":[595,841],"block_position":"67-0"},{"bbox":[88,364,147,380],"type":"title","angle":0,"index":1,"text":"# 固定分区","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":67,"id":"ee0434e1-e6f0-4553-8da2-39efd40a8845","page_size":[595,841],"block_position":"67-1"},{"bbox":[105,414,246,428],"type":"text","angle":0,"index":2,"text":"分区大小相等、分区大小不等","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"f2fecddc-4811-4598-a9e4-7a92655209e0","page_size":[595,841],"block_position":"67-2"},{"bbox":[105,429,224,443],"type":"text","angle":0,"index":3,"text":"每个分区只装入一道程序","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"46106d66-faed-4eec-bab0-a88c0f5d93d0","page_size":[595,841],"block_position":"67-3"}],[{"bbox":[117,84,372,112],"type":"text","angle":0,"index":0,"text":"操作系统需要建立一个数据结构一一分区说明表，来实现各个分区的分配与回收。每个表项对应一个分区，通常按分区大小排列。每个表项包括对应分区的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"83eade4c-5c7c-4a6c-adc7-86855a905312","page_size":[595,841],"block_position":"68-0"},{"bbox":[117,116,307,178],"index":1,"angle":0,"type":"table_body","img_path":"/","id":"81e2e7ae-e3db-46a3-9f85-518da70c6a5a","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>分区号</td><td>大小（MB）</td><td>起始地址（M）</td><td>状态</td></tr><tr><td>1</td><td>2</td><td>8</td><td>未分配</td></tr><tr><td>2</td><td>2</td><td>10</td><td>未分配</td></tr><tr><td>3</td><td>4</td><td>12</td><td>已分配</td></tr><tr><td>……</td><td>……</td><td>……</td><td>……</td></tr></table>","page_idx":68,"page_size":[595,841],"block_position":"68-1"},{"bbox":[309,116,368,160],"index":2,"angle":0,"type":"table_body","img_path":"/","id":"48d44676-8752-42fa-baa8-7db6c2f714bc","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>用数据结构的数组（或链表）即可表示这个表</td></tr></table>","page_idx":68,"page_size":[595,841],"block_position":"68-2"},{"bbox":[395,84,447,211],"index":3,"angle":0,"type":"image","img_path":"/e317733e953b7471e4936aa2f6bf92512921a9de8d4657ebc1bbc4e9726da32c.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":68,"id":"f6b4d3fe-3bed-417b-87ab-00c52aaf2c18","page_size":[595,841],"block_position":"68-3"},{"bbox":[105,250,160,263],"type":"text","angle":0,"index":5,"text":"无外部碎片","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"87a5f672-b70c-4c4d-8f7e-4055ff42820f","page_size":[595,841],"block_position":"68-4"},{"bbox":[106,266,181,279],"type":"text","angle":0,"index":6,"text":"会产生内部碎片","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"3f515e3c-509a-4a99-bdfc-5233c76f30c1","page_size":[595,841],"block_position":"68-5"},{"bbox":[105,281,286,294],"type":"text","angle":0,"index":7,"text":"外部碎片：系统进行分区后产生的碎片","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"fb3de27a-56f2-4866-81b7-5c1d74e5c8cf","page_size":[595,841],"block_position":"68-6"},{"bbox":[105,297,327,310],"type":"text","angle":0,"index":8,"text":"内部碎片：进程无法将系统分配的分区全部使用","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"b3dc2882-c74a-4a23-b05c-a4f3d471ff65","page_size":[595,841],"block_position":"68-7"},{"bbox":[105,343,297,356],"type":"text","angle":0,"index":9,"text":"分区分配表和相对应的分配回收算法实现","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"af39d5b1-88cb-4d2e-a1f6-abf9232ddaab","page_size":[595,841],"block_position":"68-8"},{"bbox":[88,380,174,396],"type":"title","angle":0,"index":10,"text":"# 可变分区方式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":68,"id":"517de259-a7e2-4079-88cb-f4e4c68bfdd6","page_size":[595,841],"block_position":"68-9"},{"bbox":[95,448,258,470],"type":"text","angle":0,"index":11,"text":"内部碎片，分配给某进程的内存区域中，如果有些部分没有用上。外部碎片，是指内存中的某些空闲分区由于太小而难以利用。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"6dc6cd01-1404-42d6-b5c8-705bf95f7321","page_size":[595,841],"block_position":"68-10"},{"bbox":[95,476,236,497],"type":"text","angle":0,"index":12,"text":"如果内存中空闲空间的总和本来可以满足某进程的要求，但由于进程需要的是一整块连续的内存空间，因此这些“碎片”不能满足进程的需求。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"6a0d7c3d-df56-4dfb-b925-8f890fcaabd5","page_size":[595,841],"block_position":"68-11"},{"bbox":[248,479,284,494],"index":13,"angle":0,"type":"image","img_path":"/40688033a28ed1803665d1a90aef68c13c64c365f494178a2eabe82b61858dfd.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":68,"id":"a36339b7-2109-46c6-a1ae-8dc52b158e54","page_size":[595,841],"block_position":"68-12"},{"bbox":[292,447,347,538],"index":14,"angle":0,"type":"image","img_path":"/a0ce2cac787e0c174f7ef2d2399409fdd756a9263813f3bf841d305700f0905d.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":68,"id":"77403127-b9c1-412c-a3cd-a5f05189f7fd","page_size":[595,841],"block_position":"68-13"},{"bbox":[105,555,254,568],"type":"text","angle":0,"index":16,"text":"没有内部碎片，但是有外部碎片","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"2aef1cb7-f5e6-41c3-acd4-85f7a4c6ddb0","page_size":[595,841],"block_position":"68-14"},{"bbox":[105,571,486,598],"type":"text","angle":0,"index":17,"text":"不会预先划分内存分区，而是在进程装入内存时，根据进程的大小动态地建立分区空闲分区表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"85b2ab4b-1d35-4b20-bf68-63b73f77bd1e","page_size":[595,841],"block_position":"68-15"},{"bbox":[106,602,161,614],"type":"text","angle":0,"index":18,"text":"空闲分区链","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"c60410cb-9cce-4233-9583-cf804bbdabec","page_size":[595,841],"block_position":"68-16"}],[{"bbox":[108,73,498,221],"index":0,"angle":0,"type":"image","img_path":"/7e566e13b2fae9ebf74a3bfd7d92b6f86f2c618a0df689f8431301382c7fda3c.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6554621848739496,"page_idx":69,"id":"66059750-e529-4afd-8026-4cdd79be3cd3","page_size":[595,841],"block_position":"69-0"},{"bbox":[105,296,151,310],"type":"title","angle":0,"index":2,"text":"# 分配算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":69,"id":"0aa6bb78-3b03-481c-99ab-e95adb9a1078","page_size":[595,841],"block_position":"69-1"},{"bbox":[105,312,190,326],"type":"title","angle":0,"index":3,"text":"# 1、 首次适应算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":69,"id":"9a01d999-04dc-43e4-984e-010eeb30b666","page_size":[595,841],"block_position":"69-2"},{"bbox":[123,327,504,356],"type":"text","angle":0,"index":4,"text":"空闲分区以地址递增的次序排列，每次分配内存时顺序查找空闲分区链，从第一个空闲分区开始查找，找到第一个可以满足需求的分区就进行必要的划分和分配","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"b55c8a4e-0865-42d7-9c94-ecce17b5bd33","page_size":[595,841],"block_position":"69-3"},{"bbox":[126,357,352,457],"index":5,"angle":0,"type":"image","img_path":"/822d54b72caac2432dcbd874cf86ca44ccc5c35a4dd98f32c63b88d8cc5d3ed2.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3798319327731092,"page_idx":69,"id":"dc0b7c71-1342-4e76-8be4-8e65b78a4eaf","page_size":[595,841],"block_position":"69-4"},{"bbox":[105,468,190,481],"type":"title","angle":0,"index":6,"text":"# 2、最佳适应算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":69,"id":"308f8942-b67a-497a-a0ba-0d9b239288f4","page_size":[595,841],"block_position":"69-5"},{"bbox":[123,483,504,512],"type":"text","angle":0,"index":7,"text":"为了保证当“大进程”到来时能有连续的大片空间，可以尽可能多地流线大片空闲区","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"1aee1185-e81d-4944-8e24-99ce95e5e7d1","page_size":[595,841],"block_position":"69-6"},{"bbox":[123,514,494,528],"type":"text","angle":0,"index":8,"text":"如何实现：空闲分区按容量递增次序链接。每次分配内存时顺序查找空闲分区链","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"33080be2-39c9-4540-8b27-8bc47ed4b9ec","page_size":[595,841],"block_position":"69-7"},{"bbox":[126,542,462,681],"index":9,"angle":0,"type":"image","img_path":"/c1113d02f0eb3480a1f5aeabd64b1da93cb0a3948abbbc8d175583c38e190602.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5647058823529412,"page_idx":69,"id":"713a4b32-1a05-4a4a-ba5f-036a077043e3","page_size":[595,841],"block_position":"69-8"},{"bbox":[123,686,209,699],"type":"text","angle":0,"index":10,"text":"容易产生外部碎片","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"bd3b62b5-8d68-4e1c-a852-92f1ca081551","page_size":[595,841],"block_position":"69-9"},{"bbox":[105,702,190,714],"type":"title","angle":0,"index":11,"text":"# 3、最坏适应算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":69,"id":"c9a12d67-1483-4f98-a6dd-9308e5a6f686","page_size":[595,841],"block_position":"69-10"},{"bbox":[129,717,365,730],"type":"text","angle":0,"index":12,"text":"根据分区链中根据分区查找与请求相差最大的分区","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"9d14e5c8-7387-4457-93db-f28a3cb0fb81","page_size":[595,841],"block_position":"69-11"},{"bbox":[129,733,394,746],"type":"text","angle":0,"index":13,"text":"按容量递减的次序，找到大小能满足要求的一个空闲分区","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"f0947959-0cba-461a-a359-72af9773dcdf","page_size":[595,841],"block_position":"69-12"}],[{"bbox":[130,74,362,172],"index":0,"angle":0,"type":"image","img_path":"/74fd9318c4797cda1212c24a9d9c6559b4db9d1c5728a1d41756012cdf1c7573.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3899159663865546,"page_idx":70,"id":"6560107e-ca74-4be7-93c4-e0d882f0fb7a","page_size":[595,841],"block_position":"70-0"},{"bbox":[129,188,299,200],"type":"text","angle":0,"index":1,"text":"大进程到达，就没有内存分区可用了","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"f0b7add3-746e-4f55-96aa-929818e07f4c","page_size":[595,841],"block_position":"70-1"},{"bbox":[86,203,170,215],"type":"title","angle":0,"index":2,"text":"# 4、邻近适应算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":70,"id":"b116259a-2d23-4210-b2c9-a57e9cde35c4","page_size":[595,841],"block_position":"70-2"},{"bbox":[108,219,384,232],"type":"text","angle":0,"index":3,"text":"首次适应算法很想，每次都从上次查找结束的位置开始检索","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"cc74f006-2cce-4bcb-89d3-f66fdad97ef1","page_size":[595,841],"block_position":"70-3"},{"bbox":[108,235,426,247],"type":"text","angle":0,"index":4,"text":"构造一个循环链表，每次分配内存时从上次查找的结束位置开始查找","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"5381183d-5f49-49b3-991f-79baf0d2f605","page_size":[595,841],"block_position":"70-4"},{"bbox":[106,248,459,327],"index":5,"angle":0,"type":"image","img_path":"/c7fb6945def852352906c1acaaee4075e7ff50131e4564998ae1edd9515dee9f.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5932773109243697,"page_idx":70,"id":"54be092a-8c04-43fd-9dc0-a10f13abe573","page_size":[595,841],"block_position":"70-5"},{"bbox":[87,327,499,342],"type":"text","angle":0,"index":6,"text":"邻近适应算法无论低地址和高地址部分的空闲分区的概率使用，也就导致了无大分区可用","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"77e0f874-ab54-44bb-a975-780c5d7dac59","page_size":[595,841],"block_position":"70-6"},{"bbox":[87,364,147,380],"type":"title","angle":0,"index":7,"text":"# 回收算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":70,"id":"aa1bc67f-ec4e-4fc4-9148-6d06cb3cd527","page_size":[595,841],"block_position":"70-7"},{"bbox":[105,415,158,428],"type":"text","angle":0,"index":8,"text":"1、 上邻接","id":"4525e522-33e7-42f8-afde-7b77dc7c27f2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"page_size":[595,841],"block_position":"70-8"},{"bbox":[106,431,158,443],"type":"text","angle":0,"index":9,"text":"2、 下邻接","id":"14ca972e-0a9e-4243-b48b-4ac8d75bde12","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"page_size":[595,841],"block_position":"70-9"},{"bbox":[106,446,167,459],"type":"text","angle":0,"index":10,"text":"3、上下邻接","id":"173bbd59-6c7e-44a6-803a-63571c2736f6","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"page_size":[595,841],"block_position":"70-10"},{"bbox":[106,461,158,474],"type":"text","angle":0,"index":11,"text":"4、 无邻接","id":"8060c1b5-5787-4043-9b12-85e4187e2dc9","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"page_size":[595,841],"block_position":"70-11"},{"bbox":[87,591,202,608],"type":"title","angle":0,"index":13,"text":"# 非连续的分配方式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":70,"id":"acb8605e-d00e-4d0e-a323-8b57a803125c","page_size":[595,841],"block_position":"70-12"},{"bbox":[86,672,504,700],"type":"text","angle":0,"index":14,"text":"将内存的物理空间和程序逻辑空间划分为大小相等的块。划分为大小和数量都固定的基本分区","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"c34f3eb0-e16a-42ba-a5fe-119e3cb68f33","page_size":[595,841],"block_position":"70-13"},{"bbox":[86,703,420,716],"type":"text","angle":0,"index":15,"text":"基本地址变换机构（用于实现逻辑地址到物理地址转换的一组硬件机构）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"cf74e665-f12e-457b-8fc7-144a440aa4ee","page_size":[595,841],"block_position":"70-14"},{"bbox":[87,719,206,731],"type":"text","angle":0,"index":16,"text":"分页存储管理的基本原理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"ae6a759c-a880-403e-a7fe-d1baf93870c6","page_size":[595,841],"block_position":"70-15"},{"bbox":[86,735,484,748],"type":"text","angle":0,"index":17,"text":"将物理内存划分成一块块（页）大小为4KB，叫做页框-页帧 $\\cdot$ 内存块 $: = 1$ 物理块 $\\cdot$ 物理页面","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"9174871d-9bcd-441c-8b67-07d8fb291b6e","page_size":[595,841],"block_position":"70-16"}],[{"bbox":[86,79,449,92],"type":"text","angle":0,"index":0,"text":"每个页框有一个编号，即“页框号” （页帧号 $\\cdot$ 内存块号 $\\mathop { : = }$ 物理块号 $\\underline { { \\cdot } } = :$ 物理页号）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"0a1532a9-f54b-4705-932a-71658700469d","page_size":[595,841],"block_position":"71-0"},{"bbox":[87,95,163,107],"type":"text","angle":0,"index":1,"text":"页框号从 0 开始","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"5b931d47-ffd5-496e-8aa5-01f8ea30656f","page_size":[595,841],"block_position":"71-1"},{"bbox":[86,110,352,122],"type":"text","angle":0,"index":2,"text":"将进程的逻辑地址空间也分为页框大小相等的一个个部分","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"825d4ec1-12bb-44af-ac09-c11fa5871070","page_size":[595,841],"block_position":"71-2"},{"bbox":[86,125,477,138],"type":"text","angle":0,"index":3,"text":"每个部分称为一个“页”（页面），每个页面也有一个编号，即页号，页号从 0 开始","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"c9be1124-bd1a-402d-8b4d-4bdbc3d0e906","page_size":[595,841],"block_position":"71-3"},{"bbox":[86,141,493,154],"type":"text","angle":0,"index":4,"text":"操作系统以页框为单位为各个进程分配内存空间，进程的每个页面分别放入一个页框中。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"a54382c3-751c-49db-a7de-7ae8156fe77c","page_size":[595,841],"block_position":"71-4"},{"bbox":[87,157,346,169],"type":"text","angle":0,"index":5,"text":"也就是说，进程的页面与内存的页框有一一对应的关系。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"03858091-e4e1-4d38-84b4-546d464fecdf","page_size":[595,841],"block_position":"71-5"},{"bbox":[86,172,420,185],"type":"text","angle":0,"index":6,"text":"不必连续存放，也无前后次序要求，只要求足够容纳所有的物理块即可。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"0b416fae-4069-4ca9-bc20-b51e09684e68","page_size":[595,841],"block_position":"71-6"},{"bbox":[87,188,195,200],"type":"text","angle":0,"index":7,"text":"将进程的逻辑地址空间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"d56be7cd-ce9f-404b-9eb1-c4a6ae1715ce","page_size":[595,841],"block_position":"71-7"},{"bbox":[87,203,237,216],"type":"text","angle":0,"index":8,"text":"将物理地址空间也划分成一页页","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"84457c2d-a5d6-48ca-8964-6a5a07fabece","page_size":[595,841],"block_position":"71-8"},{"bbox":[87,219,227,232],"type":"text","angle":0,"index":9,"text":"通常大小和虚拟地址空间一样","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"42c2e89b-a76b-4da5-8d83-97103c174f09","page_size":[595,841],"block_position":"71-9"},{"bbox":[87,235,248,247],"type":"text","angle":0,"index":10,"text":"物理地址空间的每一页也叫做页框","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"9717ad49-6119-47c6-bd6e-960a948a449b","page_size":[595,841],"block_position":"71-10"},{"bbox":[87,250,308,263],"type":"text","angle":0,"index":11,"text":"在物理地址空间已有的部分是已缓存的 cache 的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"2cdd254f-46e2-4f0e-ad4c-4685def01ca6","page_size":[595,841],"block_position":"71-11"},{"bbox":[86,265,489,279],"type":"text","angle":0,"index":12,"text":"只要确定了每个页面的大小，逻辑地址结构就确定了。因此，页式管理中地址是一维的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"79e05ac4-e96f-4696-9ee7-6d63ab456055","page_size":[595,841],"block_position":"71-12"},{"bbox":[87,281,297,294],"type":"text","angle":0,"index":13,"text":"Uncache 的，在磁盘上，还没在物理地址空间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"463f7bc7-9d0c-4152-9f3b-7c072f181f65","page_size":[595,841],"block_position":"71-13"},{"bbox":[87,297,224,309],"type":"text","angle":0,"index":14,"text":"Unallocated，在磁盘上也没有","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"fe461fc0-ceb0-42fd-a692-5a0d7c533dc3","page_size":[595,841],"block_position":"71-14"},{"bbox":[107,311,421,498],"index":15,"angle":0,"type":"image","img_path":"/1c792a64dcf167d232d6189e3d58ba1128143ad5c43ea4546ebe9f91700d53d4.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5277310924369748,"page_idx":71,"id":"c6c6d270-4e63-479f-bd3c-7164dcbfc518","page_size":[595,841],"block_position":"71-15"}],[{"bbox":[107,76,283,288],"index":0,"angle":0,"type":"image","img_path":"/708cd01ccecbc4be7e950bce5ab44c1a0656e4b88e35c7207beec8727c597030.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2957983193277311,"page_idx":72,"id":"5a25deb3-f328-4f8d-ae36-55cb21d25d26","page_size":[595,841],"block_position":"72-0"},{"bbox":[105,297,158,309],"type":"text","angle":0,"index":1,"text":"PTE 页表项","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"23c37ad0-a7b8-4bab-977d-450ad7623a7a","page_size":[595,841],"block_position":"72-1"},{"bbox":[104,312,505,341],"type":"text","angle":0,"index":2,"text":"PTED0 valid $^ { = 1 }$ 虚拟页 0 已经缓存在物理内存 address，根据 address 来在物理内存获取数据","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"e7acc373-9fe5-4569-b90c-caf1d0e6b01c","page_size":[595,841],"block_position":"72-2"},{"bbox":[88,343,480,357],"type":"text","angle":0,"index":3,"text":"$^ { = 0 }$ ，不在物理内存中，发生了缺页，进行缺页处理程序，从磁盘上调到虚拟内存里来","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"d8a47ca6-a93e-4086-96a1-874391ab0cca","page_size":[595,841],"block_position":"72-3"},{"bbox":[87,390,290,403],"type":"text","angle":0,"index":4,"text":"虚拟虚拟，其实并不存在，存在的是物理页","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"edea3df2-0e94-48dc-9589-786d190647ab","page_size":[595,841],"block_position":"72-4"},{"bbox":[88,671,379,841],"index":5,"angle":0,"type":"image","img_path":"/f474fcf5b78900a98b007443a9f771c077f8d3e2ad69a4f651a7c6698de87211.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4890756302521008,"page_idx":72,"id":"91055830-1226-4752-83dc-58e55c1f604f","page_size":[595,841],"block_position":"72-5"}],[{"bbox":[86,110,458,122],"type":"text","angle":0,"index":0,"text":"分页系统的逻辑地址空间分为两部分：页号P和页内地址d（又称为页内偏移量）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"4cf38616-825d-4a59-9a91-722b0983fa8e","page_size":[595,841],"block_position":"73-0"},{"bbox":[86,125,452,138],"type":"text","angle":0,"index":1,"text":"页面的大小决定页内地址的位数，页号位数决定了逻辑地址空间中页面的总数。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"a968a858-8f94-42db-b97e-4b006341ece4","page_size":[595,841],"block_position":"73-1"},{"bbox":[86,172,447,185],"type":"text","angle":0,"index":2,"text":"页表——为了直到每个页面在内存中存放到位置，要为每个进程创建一个页表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"50e69368-0b0f-4dd0-a159-4ae84bee963d","page_size":[595,841],"block_position":"73-2"},{"bbox":[87,188,153,200],"type":"text","angle":0,"index":3,"text":"通常在PCB中","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"827bd352-d4d6-4baf-b205-9c8e0be26d58","page_size":[595,841],"block_position":"73-3"},{"bbox":[86,203,217,216],"type":"text","angle":0,"index":4,"text":"每一个页面对应一个页表项","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"e744d396-7d9b-4cad-9d0b-da74c3398cf7","page_size":[595,841],"block_position":"73-4"},{"bbox":[86,219,227,232],"type":"text","angle":0,"index":5,"text":"每个页表项由页号和块号组成","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"51f25390-39c7-4fb3-a4e6-65e21b5c1a20","page_size":[595,841],"block_position":"73-5"},{"bbox":[86,235,342,247],"type":"text","angle":0,"index":6,"text":"页表记录进程页面和实际存放的内存块之间的映射关系","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"1e92029f-b9f6-48f4-83c9-5ee71d5a5824","page_size":[595,841],"block_position":"73-6"},{"bbox":[86,250,509,279],"type":"text","angle":0,"index":7,"text":"页表存储在内存中,只存储物理块号，页号不占用存储空间（因为是按页号是按顺序排列的，只有块号）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"770985e4-dd72-4cb8-acd3-40170eb64f3d","page_size":[595,841],"block_position":"73-7"},{"bbox":[86,281,505,295],"type":"text","angle":0,"index":8,"text":"然后将页表的起始地址及长度保存在进程的 PCB 中，当以后调度进程到 CPU 上运行时，再","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"d13fbc6d-2287-4f87-a09e-bc4edb6959ea","page_size":[595,841],"block_position":"73-8"},{"bbox":[86,297,364,310],"type":"text","angle":0,"index":9,"text":"将 PCB 保存到页表起始地址及长度写入 CPU 的页表寄存器中","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"9511f1ab-e909-4e61-956c-08302a6a919a","page_size":[595,841],"block_position":"73-9"},{"bbox":[86,312,384,326],"type":"text","angle":0,"index":10,"text":"虽然进程的各个页面是离散存放的，但是页面内部是连续存放的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"2add8b2b-e1f7-41fc-b2ff-9c456f9234a4","page_size":[595,841],"block_position":"73-10"},{"bbox":[95,334,236,348],"type":"text","angle":0,"index":11,"text":"如果要访问逻辑地址A，则","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"a4bdc543-1b3b-4d94-b42d-269dbe685a3e","page_size":[595,841],"block_position":"73-11"},{"bbox":[95,349,301,362],"type":"text","angle":0,"index":12,"text":"$\\textcircled{1}$ 确定逻辑地址A对应的“页号”P？","id":"aee5c9b1-4e5a-4a20-a559-ce7ade3f72d5","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"page_size":[595,841],"block_position":"73-12"},{"bbox":[95,363,356,376],"type":"text","angle":0,"index":13,"text":"$\\textcircled{2}$ 找到P号页面在两存中的起始地址（需要查页表）","id":"4466fee4-55a2-465a-89f9-b31ae8cbe363","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"page_size":[595,841],"block_position":"73-13"},{"bbox":[95,377,315,391],"type":"text","angle":0,"index":14,"text":"$\\textcircled{3}$ 确定逻辑地址A的“页内偏移量”W？","id":"f4dd8206-b800-445e-b6e8-3108aef5c0fa","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"page_size":[595,841],"block_position":"73-14"},{"bbox":[95,405,470,420],"type":"text","angle":0,"index":16,"text":"逻辑地址A对应的物理地址=P号页面在内存中的起始地址+页内偏移量W","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"f40fff49-b40c-4df9-8757-4115ee2a4d95","page_size":[595,841],"block_position":"73-15"},{"bbox":[99,449,162,465],"type":"text","angle":0,"index":17,"text":"如何计算：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"cd126815-001c-4372-a8cd-8aa4102145a8","page_size":[595,841],"block_position":"73-16"},{"bbox":[99,466,396,482],"type":"text","angle":0,"index":18,"text":"页号=逻辑地址/页面长度（取除法的整数部分）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"babae7ab-f087-45a0-977b-f9296f807af8","page_size":[595,841],"block_position":"73-17"},{"bbox":[99,483,439,499],"type":"text","angle":0,"index":19,"text":"页内偏移量 $\\equiv$ 逻辑地址%页面长度（取除法的余数部分）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"03456451-eb9c-4bae-a47d-3902d7a481a5","page_size":[595,841],"block_position":"73-18"},{"bbox":[99,516,210,531],"type":"text","angle":0,"index":20,"text":"页号=110/50=2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"61301e39-fa1d-48d4-b5c3-59441feb553c","page_size":[595,841],"block_position":"73-19"},{"bbox":[99,533,262,548],"type":"text","angle":0,"index":21,"text":"页内偏移量=110%50=10","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"4b3fde95-e8ea-439e-b2b7-edea473df62b","page_size":[595,841],"block_position":"73-20"},{"bbox":[99,565,358,581],"type":"text","angle":0,"index":22,"text":"逻辑地址可以拆分为（页号，页内偏移量）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"cf969095-503d-4117-9b1f-0728ec0856ec","page_size":[595,841],"block_position":"73-21"},{"bbox":[103,618,292,628],"type":"text","angle":0,"index":23,"text":"页号=逻辑地址/页面长度（取除法的整数部分）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"5f12fbcd-ca24-4bc3-808c-8b20916c2e11","page_size":[595,841],"block_position":"73-22"},{"bbox":[103,629,318,639],"type":"text","angle":0,"index":24,"text":"页内偏移量 $=$ 逻辑地址 $\\%$ 页面长度（取除法的余数部分）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"d97e2562-e5df-405e-9a50-e6de06d21b66","page_size":[595,841],"block_position":"73-23"},{"bbox":[346,605,498,646],"type":"text","angle":0,"index":25,"text":"在计算机内部，地址是用二进制表示的，如果页面大小刚好是2的整数幂，则计算机硬件可以很快速的把逻辑地址拆分成（页号，页内偏移量）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"1c9caa40-125f-4d2f-93c6-41f2f40c62fc","page_size":[595,841],"block_position":"73-24"},{"bbox":[102,650,394,661],"type":"text","angle":0,"index":26,"text":"假设某计算机用32个二进制位表示逻辑地址，页面大小为4KB=212B=4096B","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"ef32f216-c6be-444d-b4b3-ae3c9dbbbcbf","page_size":[595,841],"block_position":"73-25"},{"bbox":[102,670,332,681],"type":"text","angle":0,"index":27,"text":"0号页的逻辑地址范围应该是 $0 \\sim 4 0 9 5$ ，用二进制表示应该是：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"ce899689-45bd-43ae-bc9d-3c0b29964dd2","page_size":[595,841],"block_position":"73-26"},{"bbox":[103,682,394,692],"type":"text","angle":0,"index":28,"text":"00000000000000000000000000000000~00000000000000000000111111111111","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"87f9395e-5901-4239-81bd-bfa75db7a4fd","page_size":[595,841],"block_position":"73-27"},{"bbox":[102,702,345,712],"type":"text","angle":0,"index":29,"text":"1号页的逻辑地址范围应该是4096~8191，用二进制表示应该是：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"aa9f5a88-bb24-449a-b415-ee31f5ea954f","page_size":[595,841],"block_position":"73-28"},{"bbox":[103,713,394,723],"type":"text","angle":0,"index":30,"text":"00000000000000000001000000000000~000000000000000000011111111111","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"6f9e7a8c-fd92-4b32-a094-3b4e55d48c0d","page_size":[595,841],"block_position":"73-29"},{"bbox":[102,732,349,744],"type":"text","angle":0,"index":31,"text":"2号页的逻辑地址范围应该是8192~12287，用二进制表示应该是：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"8b8268c4-1fc6-4759-9ba9-4865ac6590da","page_size":[595,841],"block_position":"73-30"},{"bbox":[415,673,496,735],"type":"text","angle":0,"index":32,"text":"结论：如果每个页面大小为2B，用二进制数表示逻辑地址，则末尾K位即为页内偏移量，其余部分就是页号","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"d5d93fb7-f511-4468-86bf-30414f1a4a26","page_size":[595,841],"block_position":"73-31"}],[{"bbox":[103,74,567,84],"type":"header","angle":0,"index":-99999,"text":"假议物理地址也用z|二进制位衣小，则田了内行块的八小-贝面八小，四此：","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":74,"is_discarded":true,"id":"f30c0ec7-aebd-4759-afb8-d9b4aae895da","page_size":[595,841],"block_position":"74-0"},{"bbox":[103,85,500,100],"type":"text","angle":0,"index":1,"text":"0号内存块的起始物理地址是00000000000000000000000000000000","id":"4470560c-1409-4c29-8bb9-48756f5aa673","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"page_size":[595,841],"block_position":"74-1"},{"bbox":[104,102,500,116],"type":"text","angle":0,"index":2,"text":"1号内存块的起始物理地址是00000000000000000001000000000000","id":"02361c62-878e-40b4-95b9-ec3868b26f79","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"page_size":[595,841],"block_position":"74-2"},{"bbox":[104,118,499,132],"type":"text","angle":0,"index":3,"text":"2号内存块的起始物理地址是00000000000000000010000000000000","id":"9742b270-025b-4770-a777-708035863cf9","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"page_size":[595,841],"block_position":"74-3"},{"bbox":[104,134,499,149],"type":"text","angle":0,"index":4,"text":"3号内存块的起始物理地址是00000000000000011000000000000","id":"9be28604-9cdf-47d0-89da-8aee0354765e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"page_size":[595,841],"block_position":"74-4"},{"bbox":[521,101,595,116],"type":"text","angle":0,"index":6,"text":"根据页号可","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"7619e301-8672-4e8a-b4ae-6cf7938ee053","page_size":[595,841],"block_position":"74-5"},{"bbox":[522,117,594,132],"type":"text","angle":0,"index":7,"text":"只是内存块","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"d154266a-0fbf-4ab8-8975-498b6f3ffa4e","page_size":[595,841],"block_position":"74-6"},{"bbox":[101,166,489,183],"type":"text","angle":0,"index":9,"text":"假设通过查询页表得知1号页面存放的内存块号是9（1001），则","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"a80ff9ec-32f1-49aa-9c6e-0ed07064582c","page_size":[595,841],"block_position":"74-7"},{"bbox":[104,185,524,198],"type":"text","angle":0,"index":10,"text":"9号内存块的起始地址=9*4096=00000000000000001001000000000000","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"4befa54c-4781-4800-9761-a82d89bb6fb6","page_size":[595,841],"block_position":"74-8"},{"bbox":[104,199,568,215],"type":"text","angle":0,"index":11,"text":"则逻辑地址4097对应的物理地址 $\\Bumpeq$ 页面在内存中存放的起始地址+页内偏移量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"84f8b0f6-6d9f-48af-9d34-bed82e5d72c4","page_size":[595,841],"block_position":"74-9"},{"bbox":[104,217,354,231],"type":"interline_equation","angle":0,"index":12,"text":"$$\n= (0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1)\n$$","color":{"line":"rgba(230, 122, 171, 1)","fill":"rgba(230, 122, 171, 1)"},"page_idx":74,"id":"c6efd8ea-c845-47cd-9ea3-0cada53346f6","page_size":[595,841],"block_position":"74-10"},{"bbox":[103,268,354,294],"index":13,"angle":0,"type":"table_body","img_path":"/","id":"6531a88a-e225-4faa-92bd-d127ca533105","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>31</td><td>......</td><td>12</td><td>11</td><td>......</td><td>0</td></tr><tr><td>页号P</td><td></td><td></td><td colspan=\"3\">页内偏移量W</td></tr></table>","page_idx":74,"page_size":[595,841],"block_position":"74-11"},{"bbox":[102,298,408,317],"type":"text","angle":0,"index":14,"text":"地址结构包含两个部分：前一部分为页号，后一部分为页内偏移量W。在上图所示的例子中，地址长度为32位，其中0~11位为“页内偏移量”，或称“页内地址”； $\\pmb { 1 2 \\sim 3 1 }$ 位为“页号”","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"936986a3-9135-4bd2-b43c-a44628b082ac","page_size":[595,841],"block_position":"74-12"},{"bbox":[102,324,360,343],"type":"text","angle":0,"index":15,"text":"如果有K位表示“页内偏移量”，则说明该系统中一个页面的大小是2K个内存单元如果有M位表示“页号”，则说明在该系统中，一个进程最多允许有 $2 ^ { M }$ 个页面 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"ed72302b-e6dd-4e34-b444-0c602f14a734","page_size":[595,841],"block_position":"74-13"},{"bbox":[340,348,433,375],"type":"text","angle":0,"index":16,"text":"重要重要重要！！！","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"7724f5d3-e582-4e71-815b-1e207c78a5de","page_size":[595,841],"block_position":"74-14"},{"bbox":[377,419,430,425],"type":"text","angle":0,"index":17,"text":"→逻辑地址结构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"d70ee58a-5a34-4ac2-9407-1a92328f30f1","page_size":[595,841],"block_position":"74-15"},{"bbox":[108,440,437,470],"type":"text","angle":0,"index":18,"text":"Tips：有些奇葩题目中页面大小有可能不是2的整数次幂，这种情况还是得用最原始的方法计算页号=逻辑地址/页面长度（取除法的整数部分）页内偏移量=逻辑地址%页面长度（取除法的余数部分）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"8ab874cd-4d99-4671-b086-cb71cb7f391d","page_size":[595,841],"block_position":"74-16"},{"bbox":[88,481,467,594],"index":19,"angle":0,"type":"image","img_path":"/46f240890524dd3498cfef4a2215200a1660bdf31c46f97a0975cd74b08d60b7.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6369747899159663,"page_idx":74,"id":"da76600a-a145-40b2-80f2-57b55e477c14","page_size":[595,841],"block_position":"74-17"},{"bbox":[86,655,321,669],"type":"text","angle":0,"index":20,"text":"VP0:根据虚拟页大小4KB，长度为12位，页内地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"5ebcd751-76ea-4617-804e-44464d460804","page_size":[595,841],"block_position":"74-18"},{"bbox":[88,671,214,683],"type":"text","angle":0,"index":21,"text":"在一个页4kb中的起始位置","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"b86d6396-ad1f-4a41-ad5b-11a435a98d63","page_size":[595,841],"block_position":"74-19"},{"bbox":[86,687,452,700],"type":"text","angle":0,"index":22,"text":"虚拟页根据地址位数，32位， $3 2 - 1 2 = 2 0$ 位，虚拟页号20位，有 $2 \\sim 2 0$ 个虚拟页。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"c461f476-76c7-4b9f-b59d-3b9634e5cefe","page_size":[595,841],"block_position":"74-20"},{"bbox":[88,702,301,715],"type":"text","angle":0,"index":23,"text":"分页系统的逻辑地址空间是一维线性地址空间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"b53b0e00-b5ee-4def-9baa-aa772c0484a9","page_size":[595,841],"block_position":"74-21"}],[{"bbox":[88,75,473,269],"index":0,"angle":0,"type":"image","img_path":"/e99b55c3875ed3086ad6fd2cddc782a0ffc65bf75ee83c6c2989e2ba98eb733a.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6470588235294118,"page_idx":75,"id":"ae1b68fe-5577-405d-a695-b047830638ed","page_size":[595,841],"block_position":"75-0"},{"bbox":[106,276,546,515],"index":1,"angle":0,"type":"image","img_path":"/e20d89493123eb894f1a342b85e81adb13ed0ddb2a6d7bfea940c764c69a6bc8.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7394957983193278,"page_idx":75,"id":"4fa99f71-b7b2-42af-b1cd-975f0cc79209","page_size":[595,841],"block_position":"75-1"},{"bbox":[97,536,271,551],"type":"text","angle":0,"index":2,"text":"注意：页面大小是2的整数幂","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"id":"b166dcaa-975f-4198-8cad-4943f5a71331","page_size":[595,841],"block_position":"75-2"},{"bbox":[98,553,440,567],"type":"text","angle":0,"index":3,"text":"设页面大小为L，逻辑地址A到物理地址E的变换过程如下：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"id":"7a823ccf-5b28-491f-afd8-a1b9b5092e71","page_size":[595,841],"block_position":"75-3"},{"bbox":[96,570,593,617],"type":"text","angle":0,"index":4,"text":"$\\textcircled{1}$ 计算页号P和页内偏移量W（如果用十进制数手算，则P=A/L，W=A%L；但是在运行时，逻辑地址结构是固定不变的，因此计算机硬件可以更快地得到二进制表示内偏移量）","id":"6379fa6a-f16f-4fe7-b65f-a96ab49faad9","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-4"},{"bbox":[96,618,592,649],"type":"text","angle":0,"index":5,"text":"$\\textcircled{2}$ 比较页号P和页表长度M，若P≥M，则产生越界中断，否则继续执行。（注意：页始的，而页表长度至少是1，因此P=M时也会越界）","id":"469c409d-fc79-4f3a-810f-1539c4cbdb3b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-5"},{"bbox":[96,651,593,714],"type":"text","angle":0,"index":6,"text":"$\\textcircled{3}$ 页表中页号P对应的页表项地址=页表起始地址F+页号P*页表项长度，取出该页即为内存块号。（注意区分页表项长度、页表长度、页面大小的区别。页表长度指表中总共有几个页表项，即总共有几个页；页表项长度指的是每个页表项占多大的页面大小指的是一个页面占多大的存储空间）","id":"535f8fbe-f43b-4e37-b738-b0484ab9fbe4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-6"},{"bbox":[96,716,593,748],"type":"text","angle":0,"index":7,"text":"$\\textcircled{4}$ 计算E=b*L+W，用得到的物理地址E去访存。（如果内存块号、页面偏移量是示的，那么把二者拼接起来就是最终的物理地址了）","id":"425a56cb-660f-4e78-b226-f761b9f7846c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-7"}],[{"bbox":[534,575,574,589],"type":"aside_text","angle":0,"index":-999979,"text":"剩余1B","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":76,"is_discarded":true,"id":"bca76fd0-b4b8-4411-8998-9a4c78b194f9","page_size":[595,841],"block_position":"76-0"},{"bbox":[88,121,415,158],"type":"text","angle":0,"index":0,"text":"手验证：假设贝 L=1K访问的内存块号b=2，页内偏移量W=1023","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"42e543f0-1c4d-4447-bd4d-d810b30ce1d3","page_size":[595,841],"block_position":"76-1"},{"bbox":[88,160,406,179],"type":"text","angle":0,"index":1,"text":"","id":"bbcda32e-29b7-441c-a47e-eebdd47b107d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"page_size":[595,841],"block_position":"76-2"},{"bbox":[88,182,405,222],"type":"text","angle":0,"index":2,"text":"","id":"ace408eb-2fad-4dff-9353-6ac5ae3acbe7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"page_size":[595,841],"block_position":"76-3"},{"bbox":[89,224,282,241],"type":"text","angle":0,"index":4,"text":"对比①②的结果是否一致","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"5902315f-e8ed-4761-9db2-e2886a45a0df","page_size":[595,841],"block_position":"76-4"},{"bbox":[108,247,406,341],"index":5,"angle":0,"type":"image","img_path":"/b6493ff53111f4f2219db9b697061852e43762a1e4f672751e8f347e8c54f294.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5008403361344538,"page_idx":76,"id":"91397996-8cc9-4ef1-9470-c35e1c7a6394","page_size":[595,841],"block_position":"76-5"},{"bbox":[87,344,261,362],"index":6,"angle":0,"type":"image_caption","text":"Eg：假设某系统物理内存大小为4GB，页面大小为4KB，则每个页表项至少应该为多少字节？","id":"b7b4e155-71e7-4a59-bde0-cdcb7ed30390","color":{"line":"rgba(13, 83, 222 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"page_size":[595,841],"block_position":"76-6"},{"bbox":[88,364,184,372],"type":"text","angle":0,"index":7,"text":"内存块大小=页面大小=4KB=212B","id":"1e968097-08e4-4808-8c30-f175c334e8c8","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"page_size":[595,841],"block_position":"76-7"},{"bbox":[88,373,235,381],"type":"text","angle":0,"index":8,"text":"→4GB的内存总共会被分为 $2 ^ { 3 2 } / 2 ^ { 1 2 } = 2 ^ { 2 0 }$ 个内存块","id":"4736b954-a540-468c-a0f7-9f7395c63be2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"page_size":[595,841],"block_position":"76-8"},{"bbox":[89,381,186,388],"type":"text","angle":0,"index":9,"text":"→内存块号的范围应该是 $0 \\sim 2 ^ { 2 0 }$ -1","id":"8fa8a5e1-e995-457a-ab95-fae0a5f613ba","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"page_size":[595,841],"block_position":"76-9"},{"bbox":[89,389,188,396],"type":"text","angle":0,"index":10,"text":"→内存块号至少要用20bit来表示","id":"2bed0c62-74ac-46ab-acfb-ce170bd3d12e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"page_size":[595,841],"block_position":"76-10"},{"bbox":[89,396,201,402],"type":"text","angle":0,"index":11,"text":">至小票用2B来表元地号（2*8-24h*）","id":"9251baf8-85a5-4c3c-9c81-7af87112894c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"page_size":[595,841],"block_position":"76-11"},{"bbox":[121,465,542,491],"type":"text","angle":0,"index":14,"text":"Eg：假设某系统物理内存大小为4GB，页面大小为4KB，的内存总共会被分为 $2 ^ { 3 2 }$/212=220个内存块，因此内存块号的范围应该是0~220-1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"01671607-8092-4048-b8d2-8179722a851a","page_size":[595,841],"block_position":"76-12"},{"bbox":[121,493,537,521],"type":"text","angle":0,"index":15,"text":"因此至少要20个二进制位才能表示这么多的内存块号，因此至少要3个字节才够（每个字节8个二进制位，3个字节共24个二进制位）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"491cb14a-f39e-4af0-aff6-63f5fc241244","page_size":[595,841],"block_position":"76-13"},{"bbox":[116,533,218,628],"index":16,"angle":0,"type":"table_body","img_path":"/","id":"8dfd8db4-5247-4637-a707-a3554608759a","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>页号</td><td>块号</td></tr><tr><td>0</td><td>3字节</td></tr><tr><td>1</td><td>3字节</td></tr><tr><td>……</td><td>3字节</td></tr><tr><td>n</td><td>3字节</td></tr></table>","page_idx":76,"page_size":[595,841],"block_position":"76-14"},{"bbox":[135,631,159,645],"index":17,"angle":0,"type":"table_caption","text":"","id":"702f03f4-ba41-4b4d-8b88-f1297bfe73bf","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"page_size":[595,841],"block_position":"76-15"},{"bbox":[243,534,500,576],"type":"text","angle":0,"index":18,"text":"各页表项会按顺序连续地存放在内存中如果该页表在内存中存放的起始地址为X，则M号页对应的页表项是存放在内存地址为 $x + 3 ^ { * } M$","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"649dbfa4-7303-4e57-9d6b-efa1bb469b80","page_size":[595,841],"block_position":"76-16"},{"bbox":[240,580,524,650],"type":"text","angle":0,"index":19,"text":"一个页面为4KB，则每个页框可以存放4096/3=1365个页表项，但是这个页框会剩余4096%3=1B页内碎片因此，1365号页表项存放的地址为X+3*1365+1如果每个页表项占4字节，则每个页框刚好可存放1024个页表项 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"eeeb47e8-e18b-4bd8-b279-9eebc479dd5d","page_size":[595,841],"block_position":"76-17"},{"bbox":[86,717,231,730],"type":"text","angle":0,"index":21,"text":"页表项时连续地存放在内存中！","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"d461cd59-49d7-4b38-a2fd-654eb2f2fc56","page_size":[595,841],"block_position":"76-18"},{"bbox":[86,733,282,746],"type":"text","angle":0,"index":22,"text":"理论上来说，3B即可表示内存块号的范围","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"38850cd5-9b0c-4f41-baec-d3c3f01bbde2","page_size":[595,841],"block_position":"76-19"},{"bbox":[86,748,426,761],"type":"text","angle":0,"index":23,"text":"但是为了方便页表的查询，常常让每个页面恰好可以装得下整数个页表项","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"142f4c15-b386-4b0b-807d-24e9a38d4a14","page_size":[595,841],"block_position":"76-20"}],[{"bbox":[87,110,265,122],"type":"text","angle":0,"index":0,"text":"物理内存大小为 4GB，页面大小为 4KB","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"0aebda31-59da-4f88-990d-ec93896c7c0b","page_size":[595,841],"block_position":"77-0"},{"bbox":[88,126,212,137],"type":"text","angle":0,"index":1,"text":"内存块大小 $\\backprime =$ 页面大小 $\\scriptstyle \\mathtt { \\backslash = 4 K B }$","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"c9b8152e-433f-4836-a792-710305d7e483","page_size":[595,841],"block_position":"77-1"},{"bbox":[88,142,199,153],"type":"text","angle":0,"index":2,"text":"内存一共有 $2 \\sim 2 0$ 内存块","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"8ffaee8a-6701-4c65-9705-21f37c6235e2","page_size":[595,841],"block_position":"77-2"},{"bbox":[88,157,196,169],"type":"text","angle":0,"index":3,"text":"由于以字节编址，24bit","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"34f7112a-7119-4676-a14b-d9ab773fa237","page_size":[595,841],"block_position":"77-3"},{"bbox":[88,173,241,185],"type":"text","angle":0,"index":4,"text":"至少要用24位（3B）来表示块号","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"24f8fe00-ac6d-4df1-97fb-3254604a3021","page_size":[595,841],"block_position":"77-4"},{"bbox":[87,219,221,232],"type":"text","angle":0,"index":5,"text":"虚拟页偏移量 $\\cdot = :$ 物理页偏移量","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"e8bb1a47-51dd-4e2e-8d14-7da6fa0a0307","page_size":[595,841],"block_position":"77-5"},{"bbox":[88,235,179,247],"type":"text","angle":0,"index":6,"text":"如何快速找到页表？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"73eeec96-67be-414c-ae46-b31886b5b2a9","page_size":[595,841],"block_position":"77-6"},{"bbox":[88,250,164,263],"type":"text","angle":0,"index":7,"text":"页表基址寄存器","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"eee0d3a2-2a05-496e-af7c-3ba6bdea0c56","page_size":[595,841],"block_position":"77-7"},{"bbox":[88,266,206,279],"type":"text","angle":0,"index":8,"text":"每个页表项大小相同，4B","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"cccba7b6-4fd0-41d9-bdd5-bdb1746f017c","page_size":[595,841],"block_position":"77-8"},{"bbox":[88,282,188,294],"type":"text","angle":0,"index":9,"text":"页表项是顺序的，0-n","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"8f00c8b1-1448-4ec9-9d7a-a8066564a8a2","page_size":[595,841],"block_position":"77-9"},{"bbox":[88,297,178,309],"type":"text","angle":0,"index":10,"text":"假设虚拟地址32位","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"0e29ed04-e87d-497b-acf3-d4d41051e2cf","page_size":[595,841],"block_position":"77-10"},{"bbox":[88,312,285,325],"type":"text","angle":0,"index":11,"text":"虚拟页大小是 4KB（即页内偏移量为 12 位）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"f72285a5-c5bb-4c0c-964f-5342ef8db565","page_size":[595,841],"block_position":"77-11"},{"bbox":[88,328,327,340],"type":"text","angle":0,"index":12,"text":"有多少个虚拟页？ $2 { \\stackrel { \\wedge } { 3 } } 2 / 2 { \\stackrel { \\wedge } { \\sim } } 1 2 { = } 2 { \\stackrel { \\wedge } { 2 } } 0$ ,即 $2 \\sim 2 0$ 个虚拟页","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"f4675253-ce5d-411f-9774-19bf5ceaf707","page_size":[595,841],"block_position":"77-12"},{"bbox":[88,343,236,356],"type":"text","angle":0,"index":13,"text":"每一个虚拟页就有一个虚拟页号","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"9590c11f-b190-41d2-a536-d02ef876260a","page_size":[595,841],"block_position":"77-13"},{"bbox":[88,359,198,371],"type":"text","angle":0,"index":14,"text":"再假设每一个页表项4B","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"230b7a7f-4b40-4755-bc6c-e9f11c2426e9","page_size":[595,841],"block_position":"77-14"},{"bbox":[88,375,239,387],"type":"text","angle":0,"index":15,"text":"那么就有 $2 ^ { \\land } 2 0 { \\times } 4 \\mathsf { B }$ 即占4MB大小","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"a09e87b1-8b8b-4e89-a236-b08a4aae6ceb","page_size":[595,841],"block_position":"77-15"},{"bbox":[88,391,271,402],"type":"text","angle":0,"index":16,"text":"每一个进程都有一个独立的页表（4MB）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"760e52e2-9676-4efe-a981-db5022438508","page_size":[595,841],"block_position":"77-16"},{"bbox":[88,407,215,418],"type":"text","angle":0,"index":17,"text":"页表占用了大量的内存空间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"15db5150-4e22-4bfd-940b-fd005f4ee0fb","page_size":[595,841],"block_position":"77-17"},{"bbox":[88,419,537,665],"index":18,"angle":0,"type":"image","img_path":"/792d7b31e8f9a910bb7f2d00908e14abf865d4dd9946d6dacbc0bababa61194e.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7546218487394958,"page_idx":77,"id":"511d7ca2-bd9e-4bb7-942a-1a083a34565d","page_size":[595,841],"block_position":"77-18"}],[{"bbox":[130,98,471,112],"type":"text","angle":0,"index":1,"text":"设页面大小为L，逻辑地址A到物理地址E的变换过程如下：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"a2ec1fe0-24b1-4755-a705-d7e57c1e688e","page_size":[595,841],"block_position":"78-0"},{"bbox":[129,114,595,162],"type":"text","angle":0,"index":2,"text":"$\\textcircled{1}$ 计算页号P和页内偏移量W（如果用十进制数手算，则P=A/L，W=A%L；但运行时，逻辑地址结构是固定不变的，因此计算机硬件可以更快地得到二进制内偏移量）","id":"e9e8a8a2-e0b6-4b88-9f5f-1664af626917","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"page_size":[595,841],"block_position":"78-1"},{"bbox":[129,163,595,195],"type":"text","angle":0,"index":3,"text":"②比较页号P和页表长度M，若P≥M，则产生越界中断，否则继续执行。（注始的，而页表长度至少是1，因此P=M时也会越界）","id":"c454ad31-50e8-41d5-b860-b70611bd9dd3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"page_size":[595,841],"block_position":"78-2"},{"bbox":[129,196,595,259],"type":"text","angle":0,"index":4,"text":"$\\textcircled{3}$ 页表中页号P对应的页表项地址 $\\mathbf { \\varepsilon } = \\mathbf { \\varepsilon }$ 页表起始地址F+页号P*页表项长度，取即为内存块号。（注意区分页表项长度、页表长度、页面大小的区别。页表长表中总共有几个页表项，即总共有几个页；页表项长度指的是每个页表项占多页面大小指的是一个页面占多大的存储空间）","id":"76182509-b986-4961-b193-9c589b9443a4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"page_size":[595,841],"block_position":"78-3"},{"bbox":[129,261,595,295],"type":"text","angle":0,"index":5,"text":"$\\textcircled{4}$ 计算E=b*L+W，用得到的物理地址E去访存。（如果内存块号、页面偏移示的，那么把二者拼接起来就是最终的物理地址了）","id":"abb826c3-4ed6-4532-8794-b60ec9ca6b1c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"page_size":[595,841],"block_position":"78-4"},{"bbox":[86,312,129,325],"type":"title","angle":0,"index":7,"text":"# 快表 TLB","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":78,"id":"3018ffa9-bc8c-4751-ae4e-3e7c30ff3dd2","page_size":[595,841],"block_position":"78-5"},{"bbox":[86,327,217,341],"type":"text","angle":0,"index":8,"text":"不是内存，是一种高速缓存","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"0e76522b-e6b3-4f32-a221-d75de03804f4","page_size":[595,841],"block_position":"78-6"},{"bbox":[87,343,258,357],"type":"text","angle":0,"index":9,"text":"与此对应，内存中的页表常称为慢表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"d890e322-4437-4fd2-a962-b539f152cfaf","page_size":[595,841],"block_position":"78-7"},{"bbox":[87,359,248,372],"type":"text","angle":0,"index":10,"text":"用来存放最近访问的页表项的副本","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"fd1ffd7a-1221-4b79-b965-d34cc097099e","page_size":[595,841],"block_position":"78-8"},{"bbox":[91,373,447,587],"index":11,"angle":0,"type":"image","img_path":"/67a846eab25a2bfd9a264119147a3dfe6c3f53c4162c27ac69fa1448ef352b8c.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5983193277310924,"page_idx":78,"id":"e88a21fa-88c3-4ba8-ad3c-196d29b4f95e","page_size":[595,841],"block_position":"78-9"},{"bbox":[91,592,446,602],"type":"text","angle":0,"index":12,"text":"$\\textcircled{1}$ CPU给出逻辑地址，由某个硬件算得页号、页内偏移量，将页号与快表中的所有页号进行比较。","id":"4bbce708-2c5c-49ae-801d-6dd3b9f9a981","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"page_size":[595,841],"block_position":"78-10"},{"bbox":[92,602,455,633],"type":"text","angle":0,"index":13,"text":"$\\textcircled{2}$ 如果找到匹配的页号，说明要访问的页表项在快表中有副本，则直接从中取出该页对应的内存块号，再将内存块号与页内偏移量拼接形成物理地址，最后，访问该物理地址对应的内存单元。因此，若快表命中，则访问某个逻辑地址仅需一次访存即可。","id":"b59aaa39-0ae1-4cfd-a117-8e8ae3ec3aa0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"page_size":[595,841],"block_position":"78-11"},{"bbox":[92,633,455,674],"type":"text","angle":0,"index":14,"text":"$\\textcircled{3}$ 如果没有找到匹配的页号，则需要访问内存中的页表，找到对应页表项，得到页面存放的内存块号，再将内存块号与页内偏移量拼接形成物理地址，最后，访问该物理地址对应的内存单元。因此，若快表未命中，则访问某个逻辑地址需要两次访存（注意：在找到页表项后，应同时将其存入快表，以便后面可能的再次访问。但若快表已满，则必须按照一定的算法对旧的页表项进行替换）","id":"93df43d5-2bd4-47b2-9342-b1df77a69ac8","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"page_size":[595,841],"block_position":"78-12"},{"bbox":[92,682,423,693],"type":"text","angle":0,"index":16,"text":"由于查询快表的速度比查询页表的速度快很多，因此只要快表命中，就可以节省很多时间。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"2edd8e05-6458-4198-97f8-e0fb81391822","page_size":[595,841],"block_position":"78-13"}],[{"bbox":[91,89,332,100],"type":"text","angle":0,"index":0,"text":"$\\mathbf { \\equiv } =$ SOUna","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"aed27b7c-e8c1-437d-9622-159a5bf750bb","page_size":[595,841],"block_position":"79-0"},{"bbox":[92,111,458,121],"type":"text","angle":0,"index":2,"text":"血密长回时返本期该（J+JO0）*0+（JO0+J0）*0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"95b937fb-861f-4942-a830-ac328dd11a72","page_size":[595,841],"block_position":"79-1"},{"bbox":[92,121,245,131],"type":"text","angle":0,"index":3,"text":"（J+JOO)*O'a+（J+JOO+JOO）*OJ=JJJn2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"78cd026b-3b60-4c10-a1fd-304a4794becb","page_size":[595,841],"block_position":"79-2"},{"bbox":[113,140,595,155],"type":"text","angle":0,"index":5,"text":"问一次内存耗时100us。若快表的命中率为 $90 \\%$ ，那么访问一个逻辑地址的平均耒","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"b33ed3dc-9fd8-4024-b1c9-d5caa1cb3720","page_size":[595,841],"block_position":"79-3"},{"bbox":[113,158,354,174],"type":"text","angle":0,"index":6,"text":"（1+100）*0.9+（1+100+100）*0.1=111us","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"df220e80-04b9-4cc0-a56d-7753fc52f163","page_size":[595,841],"block_position":"79-4"},{"bbox":[87,203,143,216],"type":"title","angle":0,"index":7,"text":"# 局部性原理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":79,"id":"4f44600a-99b0-475b-9791-bfd639b44df0","page_size":[595,841],"block_position":"79-5"},{"bbox":[260,222,311,232],"type":"title","angle":0,"index":8,"text":"# 局部性原理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":79,"id":"6a1066f2-1e6e-4e5e-98e3-3c012346396c","page_size":[595,841],"block_position":"79-6"},{"bbox":[144,243,189,252],"type":"text","angle":0,"index":9,"text":"$\\dot { 1 } = 0$ ；","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"a96b14ed-31c3-4285-a417-1b97c076c978","page_size":[595,841],"block_position":"79-7"},{"bbox":[145,253,192,263],"type":"text","angle":0,"index":10,"text":"int a[100];","id":"9b1d08bf-471e-40b8-b652-798523f26734","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"page_size":[595,841],"block_position":"79-8"},{"bbox":[145,264,220,272],"type":"text","angle":0,"index":11,"text":"while $\\dot { \\mathrm { ~ \\scriptsize ~ 1 ~ } } < \\mathrm { ~ \\scriptsize ~ 1 0 0 ~ }$ ）{","id":"6ae05183-aa64-4476-8b69-d2521680693b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"page_size":[595,841],"block_position":"79-9"},{"bbox":[154,274,193,283],"type":"text","angle":0,"index":12,"text":"a[i] $\\mathbf { \\mu } = \\mathbf { \\mu } _ { \\mathrm { ~ i ~ } }$","id":"0b6268f1-73ea-44ca-a7ad-26b247c85445","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"page_size":[595,841],"block_position":"79-10"},{"bbox":[154,285,172,294],"type":"text","angle":0,"index":13,"text":"i++;","id":"a847410c-6712-4f9a-b0ba-bb4b9c9c975d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"page_size":[595,841],"block_position":"79-11"},{"bbox":[247,253,301,263],"type":"text","angle":0,"index":15,"text":"这个程序执行时，","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"2209d080-1408-4cf5-823e-08595810a9c7","page_size":[595,841],"block_position":"79-12"},{"bbox":[248,264,307,271],"type":"text","angle":0,"index":16,"text":"会很频繁地访问10","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"90927e8a-dc6d-4a4a-ab06-24e445c47206","page_size":[595,841],"block_position":"79-13"},{"bbox":[248,272,305,280],"type":"text","angle":0,"index":17,"text":"号页面、23号页面","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"2da1a835-1c80-4dea-a357-5f3537e084ca","page_size":[595,841],"block_position":"79-14"},{"bbox":[145,310,357,335],"type":"text","angle":0,"index":18,"text":"时间局部性：如果执行了程序中的某条指令，那么不久后这条指令很有可能再次执行：如果某个数据被访问过不久之后该数据很可能再次被访问。 (因为程序中存在大量的循环）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"340b80da-86ac-4aef-ad29-a1c791355426","page_size":[595,841],"block_position":"79-15"},{"bbox":[145,336,357,361],"type":"text","angle":0,"index":19,"text":"空间局部性：一旦程序访问了某个存储单元，在不久之后，其附近的存储单元也很有可能被访问。（因为很多数据在内存中都是连续存放的）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"9d7649ea-5199-45df-96ff-005e99f81acb","page_size":[595,841],"block_position":"79-16"},{"bbox":[427,265,457,275],"type":"text","angle":0,"index":24,"text":"10号页面","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"5ed98ed1-0b5f-46a6-9550-2a133f794815","page_size":[595,841],"block_position":"79-17"},{"bbox":[427,315,456,323],"type":"text","angle":0,"index":27,"text":"23号页面","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"ad3030a8-4612-4d97-8b31-25bf8b418f6a","page_size":[595,841],"block_position":"79-18"},{"bbox":[390,377,406,386],"type":"text","angle":0,"index":28,"text":"内存","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"83f81a75-b8d5-4d43-9b11-4b674aea46f0","page_size":[595,841],"block_position":"79-19"},{"bbox":[86,390,331,402],"type":"text","angle":0,"index":29,"text":"因此我们要建立多级页表，减少内存存储页表的空间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"c484c6a2-8bbe-4237-a546-9dc1476859a9","page_size":[595,841],"block_position":"79-20"},{"bbox":[87,406,132,418],"type":"text","angle":0,"index":30,"text":"多级页表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"9fcd0b38-8e02-44ee-b3e8-4f921574c559","page_size":[595,841],"block_position":"79-21"},{"bbox":[87,422,185,434],"type":"text","angle":0,"index":31,"text":"采用两级页表的形式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"3b999c95-7e6c-4d8f-b410-70004083a2de","page_size":[595,841],"block_position":"79-22"},{"bbox":[87,437,215,450],"type":"text","angle":0,"index":32,"text":"页表是连续存放在进程当中","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"5dd24d0c-ff62-483b-bccc-cd5630222e59","page_size":[595,841],"block_position":"79-23"},{"bbox":[116,476,595,491],"type":"text","angle":0,"index":34,"text":"问题二：没有必要让整个页表常驻内存，因为进程在一段时间内可能只需要访问","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"e515a1db-c21f-4032-aff2-6d9b93240353","page_size":[595,841],"block_position":"79-24"},{"bbox":[86,529,505,559],"type":"text","angle":0,"index":35,"text":"因此，我们可以参照进程在内存中必须连续存储的问题，我们通过了页号 $^ +$ 页内偏移量+页表的机制","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"74283f59-c1bf-4687-9395-7c9cdc435796","page_size":[595,841],"block_position":"79-25"},{"bbox":[86,561,427,575],"type":"text","angle":0,"index":36,"text":"同样的可以解决页表必须连续存放的问题，把必须连续存放的页表再分页","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"64c933fb-359e-4ca9-9f09-7be3d08751d5","page_size":[595,841],"block_position":"79-26"},{"bbox":[86,577,504,591],"type":"text","angle":0,"index":37,"text":"如页面大小4KB，每个表项4B，每个页面可以存放 1K个页表项，因此每1K个连续的页表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"aea4ecf3-33ea-4b29-b13d-0eb5008110bc","page_size":[595,841],"block_position":"79-27"},{"bbox":[86,593,426,606],"type":"text","angle":0,"index":38,"text":"项为一组，每组刚好占一个内存块，再将各组离散地存放到各个内存块中","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"c9786792-db3b-48bb-a0d8-a13dee68bec7","page_size":[595,841],"block_position":"79-28"},{"bbox":[86,608,458,622],"type":"text","angle":0,"index":39,"text":"要为离散分配的页表再建立一张页表，称为页目录表，或称外层页表、顶层页表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"66cb844a-29ac-47ff-b319-f18fdf78daea","page_size":[595,841],"block_position":"79-29"},{"bbox":[89,636,397,702],"index":40,"angle":0,"type":"table_body","img_path":"/","id":"8b10962b-648a-412a-b2c2-7107144885f0","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>页目录号</td><td>页号</td><td>页偏移量</td></tr><tr><td>10</td><td>10</td><td>12</td></tr></table>","page_idx":79,"page_size":[595,841],"block_position":"79-30"}],[{"bbox":[105,84,489,333],"index":0,"angle":0,"type":"image","img_path":"/1781acdb448947c188a6a96822ad6da1b9ffc36a91df4ba21a268a902afec981.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6453781512605042,"page_idx":80,"id":"d6805649-f609-41ae-8f75-3275b71f293c","page_size":[595,841],"block_position":"80-0"},{"bbox":[88,359,232,371],"index":1,"angle":0,"type":"image_caption","text":"一个页面可以存放 1024 个页表","id":"8df56da5-f8ab-4b67-bf33-5d320ac03ec1","color":{"line":"rgba(13, 83, 222 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"page_size":[595,841],"block_position":"80-1"},{"bbox":[94,373,558,601],"index":2,"angle":0,"type":"image","img_path":"/718a2bde7c40064cac64d193bd0ebace8566aed38d90311dcd2976b0c382647c.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7798319327731092,"page_idx":80,"id":"3b49ec0b-f09b-4b87-af62-06b4289eba82","page_size":[595,841],"block_position":"80-2"},{"bbox":[87,608,312,622],"index":3,"angle":0,"type":"image_caption","text":"就要为这些小页表再建立一个表，叫做页目录表","id":"4a5b1cf8-c1fa-429a-9c00-f831a4902171","color":{"line":"rgba(13, 83, 222 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"page_size":[595,841],"block_position":"80-3"},{"bbox":[86,655,453,669],"type":"text","angle":0,"index":4,"text":"10 位一级页号表示一共有多少个页面来存放每个小页表项（ $\\scriptstyle \\left( 2 \\land 2 2 \\mathsf { B } / 2 \\land 1 2 \\mathsf { B } = 1 0 2 4 \\right)$","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"8b8eafcc-9428-49be-8274-e571e8381a4d","page_size":[595,841],"block_position":"80-4"},{"bbox":[87,671,434,684],"type":"text","angle":0,"index":5,"text":"10 位二级页号表示每个页面（4KB）可以存放多少个页表项（ $( 4 \\mathsf { K B } / 4 \\mathsf { B } = 1 0 2 4 )$ ）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"0a907f7e-0827-4e83-aae0-871822ae0771","page_size":[595,841],"block_position":"80-5"},{"bbox":[87,687,294,699],"type":"text","angle":0,"index":6,"text":"一共加起来20位表示一共可以有多少个页表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"1ea764f4-b805-4c4e-af2e-c6b907cd8265","page_size":[595,841],"block_position":"80-6"},{"bbox":[87,702,185,714],"type":"text","angle":0,"index":7,"text":"小页表叫做二级页表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"5ad60ce3-7455-46ba-a6b7-d187dc81cf34","page_size":[595,841],"block_position":"80-7"},{"bbox":[87,718,204,730],"type":"text","angle":0,"index":8,"text":"页目录号：表示 $0 { - } 2 ^ { \\wedge } 1 0 { - } 1$","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"a2238b84-4ce1-4249-9951-a27d6d8c25dd","page_size":[595,841],"block_position":"80-8"},{"bbox":[87,733,272,746],"type":"text","angle":0,"index":9,"text":"页目录号对应页目录项（页表项的一种）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"5efc669c-3f44-47a6-b729-f7afed9ad3cd","page_size":[595,841],"block_position":"80-9"},{"bbox":[87,749,279,761],"type":"text","angle":0,"index":10,"text":"每一个页目录号可以寻址一个二级的页表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"49295187-90bb-4089-be0d-e6a283474f61","page_size":[595,841],"block_position":"80-10"}],[{"bbox":[86,79,141,91],"type":"text","angle":0,"index":0,"text":"0-2^10-1 个","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"558c59ab-7afe-4b0b-80f2-0d415cff554a","page_size":[595,841],"block_position":"81-0"},{"bbox":[86,94,503,108],"type":"text","angle":0,"index":1,"text":"每一页是 4KB(页偏移量 12 位)，一个页表项最多有 $2 { \\sim } 1 0$ 个，即最多占用的物理内存为 4MB","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"1672ea55-a830-498e-8181-31143e72f876","page_size":[595,841],"block_position":"81-1"},{"bbox":[88,110,402,310],"index":2,"angle":0,"type":"image","img_path":"/b32f807a608b1d2fdbe6f4a3595f123cb97f2c21355da9a304e48ea798197da4.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5277310924369748,"page_idx":81,"id":"c1c6d3d2-06ad-473c-bd71-00277d65ec8d","page_size":[595,841],"block_position":"81-2"},{"bbox":[115,312,534,367],"index":3,"angle":0,"type":"image","img_path":"/35664f02c0b9223ecfe42c7af170d5a65c180ff0f0eba55769e14150894b7804.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.704201680672269,"page_idx":81,"id":"762cfbac-d695-4dc5-b656-b7286941bd7c","page_size":[595,841],"block_position":"81-3"},{"bbox":[541,330,595,359],"type":"text","angle":0,"index":4,"text":"两级页","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"0025e080-b958-47f5-8767-1b4eff66590e","page_size":[595,841],"block_position":"81-4"},{"bbox":[119,371,595,386],"type":"text","angle":0,"index":5,"text":"例：将逻辑地址（0000000000,0000000001,111111111111)转换为物理地址（用十进制表示）。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"0f8fd958-f30d-43d4-9d15-8ef049f44d5a","page_size":[595,841],"block_position":"81-5"},{"bbox":[101,412,539,609],"index":6,"angle":0,"type":"image","img_path":"/d02a03dcfedfa00bad157ca817e9c012d7c493283fce3f9fbe98d6b34bbcc038.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7361344537815127,"page_idx":81,"id":"e9bd8f6f-1dcc-4c13-b2dd-b9980d14e8c7","page_size":[595,841],"block_position":"81-6"},{"bbox":[86,624,315,653],"type":"text","angle":0,"index":7,"text":"而一共有 $2 { \\sim } 1 0$ 个页目录项，共有 $4 \\mathsf { M B } \\times 2 \\sp { \\wedge } 1 0 { = } 4 \\mathsf { G B }$则可以通过来记录整个虚拟内存4GB的映射关系。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"63800176-f5a3-4aa0-9269-b8823c4d5de8","page_size":[595,841],"block_position":"81-7"}],[{"bbox":[88,76,486,268],"index":0,"angle":0,"type":"image","img_path":"/c38d804a0a0ab7925b28e0310516f15ad4653dc32b3b899f6d4c91f384fbaca2.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.66890756302521,"page_idx":82,"id":"7b113959-a451-4aed-969e-97c3337e3034","page_size":[595,841],"block_position":"82-0"},{"bbox":[87,281,167,295],"index":1,"angle":0,"type":"image_caption","text":"48位的虚拟地址","id":"7c41ced7-52c8-4f24-96d0-b10612d49e34","color":{"line":"rgba(13, 83, 222 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-1"},{"bbox":[86,312,420,326],"type":"text","angle":0,"index":2,"text":"对于问题二，可以在需要访问页面时才把也秒调入内存（虚拟存储技术）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"2f15157a-adc2-4388-8c16-79c451b25548","page_size":[595,841],"block_position":"82-2"},{"bbox":[88,327,143,341],"type":"text","angle":0,"index":3,"text":"属于内中断","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"40b844eb-f30f-4cd6-b64e-ba45416f121b","page_size":[595,841],"block_position":"82-3"},{"bbox":[95,417,230,535],"index":6,"angle":0,"type":"image","img_path":"/ba3a9181a77f5d94e321e63c0281105aa74389120b245109a687f0d7554da17d.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.226890756302521,"page_idx":82,"id":"75ad751f-2932-4de7-926a-1612288c6fd5","page_size":[595,841],"block_position":"82-4"},{"bbox":[299,418,428,529],"index":7,"angle":0,"type":"image","img_path":"/925e430df51712ffaefba5039a607ba49015a37cb21fba5117375b06bc545244.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.21680672268907564,"page_idx":82,"id":"af4330b5-33cd-4ef6-afe2-ab044be85473","page_size":[595,841],"block_position":"82-5"},{"bbox":[87,592,384,606],"type":"text","angle":0,"index":9,"text":"可以在页表项中增加一个标志位，表示该页面是否已经调入内存","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"b0262ae2-1f19-4576-a73e-faa737a8b682","page_size":[595,841],"block_position":"82-6"},{"bbox":[88,608,312,622],"type":"title","angle":0,"index":10,"text":"# 7. 没有快表时访问一个数据需要访问内存的次数","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":82,"id":"e187a31f-3ff2-4fe0-8da8-47b1bfaa196d","page_size":[595,841],"block_position":"82-7"},{"bbox":[88,624,173,638],"type":"text","angle":0,"index":11,"text":"– 1 次（连续分配）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"df8abdc7-2769-4840-9cad-60910fb69599","page_size":[595,841],"block_position":"82-8"},{"bbox":[88,640,202,653],"type":"text","angle":0,"index":12,"text":"HDU 编程营：936217564","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"8ce8313e-726d-4d13-90ff-1499dab512e9","page_size":[595,841],"block_position":"82-9"},{"bbox":[88,655,126,667],"type":"text","angle":0,"index":13,"text":"6/16/21","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"13c5708f-acff-469d-b3a5-8bb9bd9f38ce","page_size":[595,841],"block_position":"82-10"},{"bbox":[87,671,252,684],"type":"text","angle":0,"index":14,"text":"万物皆有裂痕，那是光进来的地方。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"7d90e721-6a52-4aaf-bbc3-8065a0a4adf1","page_size":[595,841],"block_position":"82-11"},{"bbox":[87,687,293,700],"type":"text","angle":0,"index":15,"text":"8– 2 次（一级分页存储管理、分段存储管理）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"e560730c-3b2f-4fc6-addf-edd220737c00","page_size":[595,841],"block_position":"82-12"},{"bbox":[88,702,298,715],"type":"text","angle":0,"index":16,"text":"– 3 次（二级分页存储管理、段页式存储管理）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"174f44d0-3f43-4b62-ab8e-f47675c4c562","page_size":[595,841],"block_position":"82-13"},{"bbox":[87,718,164,730],"type":"title","angle":0,"index":17,"text":"# 8. 动态分区分配","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":82,"id":"00535668-d334-4882-a8d6-3f7a8eebd1fe","page_size":[595,841],"block_position":"82-14"},{"bbox":[87,733,333,746],"type":"text","angle":0,"index":18,"text":"– 首次适应算法（空闲区按起始地址递增的次序拉链）","id":"029ab874-f6b0-415f-919d-32840c1c19c6","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-15"},{"bbox":[88,749,333,761],"type":"text","angle":0,"index":19,"text":"– 最佳适应算法（空闲区按分区大小递增的次序拉链）","id":"759a09b1-7d53-4602-817d-f94f5f40057e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-16"},{"bbox":[511,417,595,571],"index":21,"angle":0,"type":"image","img_path":"/c91a66bf47059babbb2adfc53e4b7af3883bb28bb8c166ea68de651172fd4e8c.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":82,"id":"afb64317-297f-4911-bf77-18ace3a5262f","page_size":[595,841],"block_position":"82-17"},{"bbox":[544,573,568,587],"index":22,"angle":0,"type":"image_caption","text":"内存","id":"9335ef9a-6253-4d09-8470-a1c2b29e6dc5","color":{"line":"rgba(13, 83, 222 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-18"}],[{"bbox":[86,79,474,107],"type":"text","angle":0,"index":0,"text":"– 回收时要进行分区的合并（具体有前后都没有空闲分区、只是前面有空闲区、只是后面有空闲区、前后都是空闲区这四种情况）","id":"e69efcba-290d-4bf7-ad4e-d81ac4299938","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-0"},{"bbox":[87,111,256,122],"type":"text","angle":0,"index":1,"text":"– 碎片问题可采用紧凑技术加以解决","id":"53dd63cb-a335-4c6a-bd59-5358d48654a4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-1"},{"bbox":[86,125,475,153],"type":"text","angle":0,"index":2,"text":"– 采用紧凑技术后的动态分区分配方式也叫可重定位分区分配方式（因为它需要得到动态重定位技术的支持）","id":"c71a25de-d514-43aa-a0fb-323f6344818c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-2"},{"bbox":[87,157,122,169],"type":"title","angle":0,"index":4,"text":"# 9. 对换","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":83,"id":"05b127dd-57ed-451d-9003-8a3e45a9ceaf","page_size":[595,841],"block_position":"83-3"},{"bbox":[86,172,475,216],"type":"text","angle":0,"index":5,"text":"– 所谓“对换”，是指把内存中暂时不能运行的进程或暂时不用的程序或数据，调出到外存上，以便腾出足够的内存空间，再把具备运行条件的进程或进程所需要的程序和数据，调入内存。","id":"b47125c6-2b95-4b5f-9e25-cf8b5bb27424","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-4"},{"bbox":[86,219,476,248],"type":"text","angle":0,"index":6,"text":"– 整体对换：以进程为单位的对换。（但进程的 PCB 常驻内存不应该被换出；进程的程序段如果正在被其他进程共享，也不应该被换出内存）","id":"815f439b-49b3-4041-94d7-bac1aa0c81e3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-5"},{"bbox":[87,250,298,263],"type":"text","angle":0,"index":7,"text":"– 部分对换：以“页”或“段”为单位的对换","id":"6dc3399a-6381-4c24-a86a-b8d887e1445e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-6"},{"bbox":[88,281,132,295],"type":"title","angle":0,"index":9,"text":"# 请求调页","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":83,"id":"62268967-4574-41a4-a024-5b54583efa1e","page_size":[595,841],"block_position":"83-7"},{"bbox":[115,301,422,338],"type":"text","angle":0,"index":10,"text":"一种选择，在程序执行时将整个程序加载到物理内存问题是，最初可能不需要整个程序都处于内存","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"id":"6dc70fce-6dbc-49fc-9e58-e74691b077ae","page_size":[595,841],"block_position":"83-8"},{"bbox":[112,372,458,433],"type":"text","angle":0,"index":11,"text":"仅在需要时才加载页面，这种技术被称为请求调页对于请求调页的虚拟内存，页面只有在程序执行期间被请求时才被加载。因此，从未访问的页从不加载到物理内存中。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"id":"9cbc4a3a-0fc6-4afd-9327-f64c2e990aa4","page_size":[595,841],"block_position":"83-9"},{"bbox":[88,466,514,638],"index":12,"angle":0,"type":"image","img_path":"/f10d24ee80056437e203037e848a0e6346e7b963abcc099320e9cdbaf85d99e8.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7159663865546219,"page_idx":83,"id":"f377a45c-ea79-4389-af84-f7f05f25c733","page_size":[595,841],"block_position":"83-10"},{"bbox":[88,655,297,669],"type":"text","angle":0,"index":13,"text":"1、 各级页表的大小不能超过一个页面（4KB）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"id":"ace93889-ab4c-44be-b9b7-889acf1df77a","page_size":[595,841],"block_position":"83-11"}],[{"bbox":[527,386,565,418],"type":"aside_text","angle":0,"index":-999979,"text":"2号段(6KB)","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":84,"is_discarded":true,"id":"5e4446b5-e124-4384-8b1c-7b10137a5a24","page_size":[595,841],"block_position":"84-0"},{"bbox":[527,450,564,484],"type":"aside_text","angle":0,"index":-999978,"text":"0号段(7KB)","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":84,"is_discarded":true,"id":"43a14dfa-2709-4ce7-a796-69a9fbf641ee","page_size":[595,841],"block_position":"84-1"},{"bbox":[528,515,564,546],"type":"aside_text","angle":0,"index":-999977,"text":"1号段(3KB)","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":84,"is_discarded":true,"id":"e18deda0-0ab0-402c-ac0d-00c59506d2b1","page_size":[595,841],"block_position":"84-2"},{"bbox":[536,571,565,587],"type":"aside_text","angle":0,"index":-999976,"text":"内存","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":84,"is_discarded":true,"id":"67015cf1-a4ac-45e2-80c2-ad507b3ee8d7","page_size":[595,841],"block_position":"84-3"},{"bbox":[100,79,431,95],"type":"text","angle":0,"index":0,"text":"表对应页号应为10位。总共28位的页号至少要分为三级","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"id":"951538a1-e2af-4601-96aa-4a221b3c2457","page_size":[595,841],"block_position":"84-4"},{"bbox":[100,111,163,127],"type":"text","angle":0,"index":1,"text":"逻辑地址：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"id":"0dc1d635-d710-4bfb-9d3b-b564a0fe132b","page_size":[595,841],"block_position":"84-5"},{"bbox":[100,150,162,166],"type":"text","angle":0,"index":4,"text":"逻辑地址：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"id":"596fc192-8a79-4dc4-8a1c-dac9be0a3ad8","page_size":[595,841],"block_position":"84-6"},{"bbox":[86,265,171,279],"type":"title","angle":0,"index":9,"text":"# 2、 时间上的增多","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":84,"id":"325014ce-4615-4fd1-abe9-37adce2ca751","page_size":[595,841],"block_position":"84-7"},{"bbox":[87,281,154,294],"type":"text","angle":0,"index":10,"text":"分段存储管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"id":"63f91bbd-51d4-4307-84a7-400d7a414732","page_size":[595,841],"block_position":"84-8"},{"bbox":[87,296,289,310],"type":"text","angle":0,"index":11,"text":"与分页最大的区别就是分配的地址空间不同","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"id":"7a3289c6-a45b-4618-99b0-3ad230a1b14c","page_size":[595,841],"block_position":"84-9"},{"bbox":[87,312,373,326],"type":"text","angle":0,"index":12,"text":"例如一个进程可以分为一个主程序段、子程序段、数据段等等","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"id":"f5d60080-afe3-4f31-b19d-e336f44ad81a","page_size":[595,841],"block_position":"84-10"},{"bbox":[98,340,178,499],"index":13,"angle":0,"type":"image","img_path":"/df99080ebec00322d491304b60714ac19231c97500b56bb012e3268eda91488a.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":84,"id":"838c9754-ec96-492e-afb0-8d3707e4892a","page_size":[595,841],"block_position":"84-11"},{"bbox":[248,339,443,512],"index":14,"angle":0,"type":"image","img_path":"/de29650cb43db5e10b6515935e0feeba5301cbe36fba9c1acfa6679230180129.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3277310924369748,"page_idx":84,"id":"18636c35-8c94-4275-bbfb-6c7c078b34cb","page_size":[595,841],"block_position":"84-12"},{"bbox":[85,524,486,541],"type":"text","angle":0,"index":15,"text":"由于是按逻辑功能模块划分，用户编程更方便，程序的可读性更高","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"id":"645a4e14-6c10-4276-8df3-119b08b631bd","page_size":[595,841],"block_position":"84-13"},{"bbox":[88,541,186,556],"type":"text","angle":0,"index":16,"text":"OAD1,[D]|<A>；","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"id":"8fd75c3c-fbb8-45f7-b12b-f38838f94992","page_size":[595,841],"block_position":"84-14"},{"bbox":[245,541,486,556],"type":"text","angle":0,"index":17,"text":"//将分段D中A单元内的值读入寄存器1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"id":"941d4bc9-56b6-4d58-b70b-0df469f343fa","page_size":[595,841],"block_position":"84-15"},{"bbox":[88,559,189,574],"type":"text","angle":0,"index":18,"text":"TORE1,[X]|<B>;","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"id":"f2fdec2b-2d1a-4504-9258-b711f772fd70","page_size":[595,841],"block_position":"84-16"},{"bbox":[245,557,486,573],"type":"text","angle":0,"index":19,"text":"//将寄存器1的内容存入X分段的B单元中","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"id":"e73a6a13-c897-46b8-b897-dd30616e0675","page_size":[595,841],"block_position":"84-17"}],[{"bbox":[114,87,384,98],"type":"text","angle":0,"index":0,"text":"分段系统的逻辑地址结构由段号（段名）和段内地址（段内偏移量）所组成。如：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":85,"id":"7351cf6b-f44b-47f6-84ef-32922e3312e9","page_size":[595,841],"block_position":"85-0"},{"bbox":[94,100,452,269],"index":1,"angle":0,"type":"image","img_path":"/d626c1d400e2ce196b92740d701d49d5371dcd2378815991a43ebee11ea9babb.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6016806722689075,"page_idx":85,"id":"399fde7c-3412-4249-bdaf-af943cf7a81a","page_size":[595,841],"block_position":"85-1"},{"bbox":[87,296,112,310],"type":"title","angle":0,"index":2,"text":"# 段表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":85,"id":"88fe4b0b-618b-49fc-a8f7-502b91a1e11f","page_size":[595,841],"block_position":"85-2"},{"bbox":[86,312,186,326],"type":"title","angle":0,"index":3,"text":"# 段号、段长和段基址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":85,"id":"b3967ddc-96d4-4d8e-a01f-8e1f0fb2cec9","page_size":[595,841],"block_position":"85-3"},{"bbox":[86,327,444,342],"type":"text","angle":0,"index":4,"text":"每个段对应一个段表项。因为在分页式管理当中，每个页面大小是相同的 4KB","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":85,"id":"c67138c9-ddf5-4492-ae55-5acec855d2df","page_size":[595,841],"block_position":"85-4"},{"bbox":[87,343,195,357],"type":"text","angle":0,"index":5,"text":"每个段表项的长度相同","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":85,"id":"cc5b5023-0653-4a28-8b58-15b9572d54ec","page_size":[595,841],"block_position":"85-5"},{"bbox":[86,375,227,387],"type":"title","angle":0,"index":6,"text":"# 所以要对段内偏移量进行检查","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":85,"id":"c47c1795-a94f-4d9e-93a5-8e6e5c9ae5ae","page_size":[595,841],"block_position":"85-6"},{"bbox":[86,390,296,403],"type":"text","angle":0,"index":7,"text":"这里不同的是，基址为整个物理地址（32位）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":85,"id":"58a125f8-3c50-4ad3-b07b-6d1fabdd50e4","page_size":[595,841],"block_position":"85-7"},{"bbox":[105,407,514,432],"type":"text","angle":0,"index":8,"text":"问题：程序分多个段，各段离散地装入内存，为了保证程序能正常运行，就必须能从物理内存中找到各个逻辑段的存放位置。为此，需为每个进程建立一张段映射表，简称“段表”。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":85,"id":"c38216eb-33ba-4f56-8f44-5210b1957122","page_size":[595,841],"block_position":"85-8"},{"bbox":[108,441,512,638],"index":9,"angle":0,"type":"image","img_path":"/2b507b891281a2ffa40cabec02564514c04f087c3854f3655fc3c5514686bfaf.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6789915966386555,"page_idx":85,"id":"62f55dec-392f-46c2-a0b1-a726a7b365df","page_size":[595,841],"block_position":"85-9"}],[{"bbox":[119,78,452,96],"type":"text","angle":0,"index":0,"text":"页是信息的物理单位。分页的主要目的是为了实现离散分配，提高内存利用率。分页仅仅是系统管理上的需要，完全是系统行为，对用户是不可见的。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"id":"67ec20b8-3436-45fa-98d1-5721f7013dca","page_size":[595,841],"block_position":"86-0"},{"bbox":[119,97,452,116],"type":"text","angle":0,"index":1,"text":"段是信息的逻辑单位。分段的主要目的是更好地满足用户需求。一个段通常包含着一组属于一个逻辑模块的信息。分段对用户是可见的，用户编程时需要显式地给出段名。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"id":"841c700f-6aec-43a2-a355-4d5a9efd1bc7","page_size":[595,841],"block_position":"86-1"},{"bbox":[119,118,370,129],"type":"text","angle":0,"index":2,"text":"页的大小固定且由系统决定。段的长度却不固定，决定于用户编写的程序。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"id":"766ac1d4-e991-40db-933f-c788b0749e5f","page_size":[595,841],"block_position":"86-2"},{"bbox":[119,131,399,141],"type":"text","angle":0,"index":3,"text":"分页的用户进程地址空间是一维的，程序员只需给出一个记忆符即可表示一个地址。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"id":"641f95cd-a3f6-47b8-82cd-8a9a3d0f9457","page_size":[595,841],"block_position":"86-3"},{"bbox":[119,141,453,151],"type":"text","angle":0,"index":4,"text":"分段的用户进程地址空间是二维的，程序员在标识一个地址时，既要给出段名，也要给出段内地址。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"id":"1c785e5d-ffdb-4385-a97f-a3557f3279c0","page_size":[595,841],"block_position":"86-4"},{"bbox":[115,154,483,259],"index":5,"angle":0,"type":"image","img_path":"/e26df102aa9ea7b27e447a594c60dc0a2487f87be17a4f27b9c491d5b6e03f5d.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6184873949579832,"page_idx":86,"id":"57adc064-5c3b-4f4a-9140-34e8fd290a11","page_size":[595,841],"block_position":"86-5"},{"bbox":[88,282,486,513],"index":6,"angle":0,"type":"image","img_path":"/d2cfdea41dc9b410c19d224233a5736c8defa2cf509888990e61c615f7aa10f6.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.66890756302521,"page_idx":86,"id":"e1cc59aa-7ded-4fed-9a26-579fdb961572","page_size":[595,841],"block_position":"86-6"},{"bbox":[316,553,365,560],"type":"text","angle":0,"index":9,"text":"只是简单的输出","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"id":"33f85cc1-ca19-457b-b731-4be255c2a40a","page_size":[595,841],"block_position":"86-7"},{"bbox":[316,560,365,567],"type":"text","angle":0,"index":10,"text":"“HelloWorld！”","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"id":"3a301142-8a52-44dc-ae69-d7bbdbb1ce91","page_size":[595,841],"block_position":"86-8"},{"bbox":[115,573,397,596],"type":"text","angle":0,"index":12,"text":"不能被修改的代码称为纯代码或可重入代码（不属于临界资源），这样的代码是可以共享的。可修改的代码是不能共享的（比如，有一个代码段中有很多变量，各进程并发地同时访问可能造成数据不一致）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"id":"64238e99-7871-43a3-9e6b-eafa15b2714c","page_size":[595,841],"block_position":"86-9"},{"bbox":[97,596,396,719],"index":13,"angle":0,"type":"image","img_path":"/3367ee37273d79ecc26738703546ed8df5d4206573630f08b34768686bbc5014.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5025210084033613,"page_idx":86,"id":"522a6655-59d3-4bef-99c0-5e8085f8a15c","page_size":[595,841],"block_position":"86-10"}],[{"bbox":[104,79,452,97],"type":"text","angle":0,"index":0,"text":"页是信息的物理单位。分页的主要目的是为了实现离散分配，提高内存利用率。分页仅仅是系统管理上的需要，完全是系统行为，对用户是不可见的。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"id":"b22e14dc-6871-4fb2-b914-be67df899a56","page_size":[595,841],"block_position":"87-0"},{"bbox":[104,98,452,117],"type":"text","angle":0,"index":1,"text":"段是信息的逻辑单位。分页的主要目的是更好地满足用户需求。一个段通常包含着一组属于一个逻辑模块的信息。分段对用户是可见的，用户编程时需要显式地给出段名。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"id":"d8eeae62-695d-410e-b3f8-2edc10a7dee2","page_size":[595,841],"block_position":"87-1"},{"bbox":[104,121,367,131],"type":"text","angle":0,"index":2,"text":"页的大小固定且由系统决定。段的长度却不固定，决定于用户编写的程序。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"id":"ffd0cc5b-c8f8-489c-84d3-1d57b7acff80","page_size":[595,841],"block_position":"87-2"},{"bbox":[104,134,399,143],"type":"text","angle":0,"index":3,"text":"分页的用户进程地址空间是一维的，程序员只需给出一个记忆符即可表示一个地址。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"id":"143a18d5-f46a-4d31-8952-aa133b8201c0","page_size":[595,841],"block_position":"87-3"},{"bbox":[104,144,455,154],"type":"text","angle":0,"index":4,"text":"分段的用户进程地址空间是二维的，程序员在标识一个地址时，既要给出段名，也要给出段内地址。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"id":"096998a5-ff29-4c11-b39b-39abd1bb7df8","page_size":[595,841],"block_position":"87-4"},{"bbox":[104,162,452,181],"type":"text","angle":0,"index":5,"text":"分段比分页更容易实现信息的共享和保护。不能被修改的代码称为纯代码或可重入代码（不属于临界资源），这样的代码是可以共享的。可修改的代码是不能共享的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"id":"e2b75a51-c6eb-4c9e-a7f5-7dedb767eb01","page_size":[595,841],"block_position":"87-5"},{"bbox":[104,188,224,198],"type":"text","angle":0,"index":6,"text":"访问一个逻辑地址需要几次访存？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"id":"9c4e7b16-0540-4283-b4ba-f99e6c44382d","page_size":[595,841],"block_position":"87-6"},{"bbox":[104,199,458,217],"type":"text","angle":0,"index":7,"text":"分页（单级页表）：第一次访存一一查内存中的页表，第二次访存一一访问目标内存单元。总共两次","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"id":"340f14a8-79de-40d5-83ed-827ca225a495","page_size":[595,841],"block_position":"87-7"},{"bbox":[104,218,426,227],"type":"text","angle":0,"index":8,"text":"分段：第一次访存一一查内存中的段表，第二次访存一一访问目标内存单元。总共两次访存","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"id":"b9b5d257-b49a-4749-9958-8e1fa567dce3","page_size":[595,841],"block_position":"87-8"},{"bbox":[104,228,452,247],"type":"text","angle":0,"index":9,"text":"与分页系统类似，分段系统中也可以引入快表机构，将近期访问过的段表项放到快表中，这样可以少一次访问，加快地址变换速度。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"id":"e6433894-e766-404b-beee-b2b5d7f6d062","page_size":[595,841],"block_position":"87-9"},{"bbox":[88,266,121,278],"type":"title","angle":0,"index":10,"text":"# 段页式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":87,"id":"343782a3-1b04-4417-b143-d7c735905c2b","page_size":[595,841],"block_position":"87-10"},{"bbox":[96,279,504,488],"index":11,"angle":0,"type":"image","img_path":"/45184f5da1d6a9808b8a8f40f2ba9e2e66d6df96b1a58b0731dcfa33724a13dd.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6857142857142857,"page_idx":87,"id":"c329d731-d4ae-4c91-a7c6-4da44edfc2b6","page_size":[595,841],"block_position":"87-11"},{"bbox":[105,525,499,740],"index":12,"angle":0,"type":"image","img_path":"/ad5a87aaf317c8e4c2d076e788f09fa5145f10c9263d7ea1093f47e32c604cb5.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6621848739495798,"page_idx":87,"id":"57706c38-ea24-46c9-9b5e-936b94b66c0e","page_size":[595,841],"block_position":"87-12"}],[{"bbox":[90,80,373,92],"type":"text","angle":0,"index":0,"text":"分段系统的逻辑地址结构由段号和段内地址（段内偏移量）组成。如：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"382d69b7-dbe3-400d-97b9-7fe7e4cb9628","page_size":[595,841],"block_position":"88-0"},{"bbox":[89,97,418,129],"index":1,"angle":0,"type":"table_body","img_path":"/","id":"e9dec585-8220-4348-b36b-34aa37e17f37","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>31</td><td>......</td><td>16</td><td>15</td><td>......</td><td>0</td></tr><tr><td>段号</td><td></td><td></td><td>段内地址</td><td></td><td></td></tr></table>","page_idx":88,"page_size":[595,841],"block_position":"88-1"},{"bbox":[90,141,409,153],"type":"text","angle":0,"index":2,"text":"段页式系统的逻辑地址结构由段号、页号、页内地址（页内偏移量）组成。如：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"3fab256a-dee0-45ee-9af8-50b4f711f81b","page_size":[595,841],"block_position":"88-2"},{"bbox":[88,157,505,286],"index":3,"angle":0,"type":"image","img_path":"/8d43df07f6add33cbe9e72dfecb3a8b35a2677fbcb96ba6c7cef649837453b6a.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7008403361344537,"page_idx":88,"id":"a8c9191c-e603-49d4-8a37-d1e720c62c74","page_size":[595,841],"block_position":"88-3"},{"bbox":[91,297,478,513],"index":4,"angle":0,"type":"image","img_path":"/9fb476674daa2f29df3baab85be908e8a3265fdb1050045f3e86f0cef9575186.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6504201680672269,"page_idx":88,"id":"3e5b0961-c5cc-4ac4-bc42-109a9a4724fc","page_size":[595,841],"block_position":"88-4"},{"bbox":[86,530,459,544],"type":"text","angle":0,"index":5,"text":"与此对应，段页式的段表存储的是段号（隐藏）、页表长度、页表存放块号组成","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"77920b8f-3402-4daa-bd78-b361bac9d9a6","page_size":[595,841],"block_position":"88-5"},{"bbox":[88,546,186,560],"type":"text","angle":0,"index":6,"text":"每个段表项长度相等","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"46cf4171-6437-427b-87b7-46e2a9c8709c","page_size":[595,841],"block_position":"88-6"},{"bbox":[86,561,505,591],"type":"text","angle":0,"index":7,"text":"每个页面对应一个页表项，每个页表项由页号（隐含）、页面存放的内存块号组成，每个页表项长度相等","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"e985bb1f-aba0-4a82-abf8-df0b91e3de8c","page_size":[595,841],"block_position":"88-7"},{"bbox":[88,593,154,606],"type":"text","angle":0,"index":8,"text":"虚拟存储系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"2ec37214-4839-439f-8bcf-53f4ea6d4633","page_size":[595,841],"block_position":"88-8"},{"bbox":[87,608,207,622],"type":"text","angle":0,"index":9,"text":"虚拟存储系统的基本概念","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"d3c842d8-8b5b-4dca-9258-eb3001ad4948","page_size":[595,841],"block_position":"88-9"},{"bbox":[86,624,505,653],"type":"text","angle":0,"index":10,"text":"将进程装入的一次性或者整体性改为多次性：改变进程必须全部装入内存才能开始运行的方式1、作业很大时，并不能全部装入内存，导致大作业无法运行。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"63f09d85-cb45-4577-b547-e65e221940ed","page_size":[595,841],"block_position":"88-10"},{"bbox":[87,655,437,668],"type":"text","angle":0,"index":11,"text":"当大量作业要求运行时，会只有少量作业能运行，导致多道程序并发度下降","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"271229cf-1b8b-4f7e-825f-3315ffcad4f1","page_size":[595,841],"block_position":"88-11"},{"bbox":[86,671,505,700],"type":"text","angle":0,"index":12,"text":"将进程的驻留性改为置换性：当作业被装入内存，就会一直驻留在内存中。那么在需要时将暂时不用的部分换出到外存储器。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"f1fbe596-f71c-4948-936f-e76cad92f9cb","page_size":[595,841],"block_position":"88-12"}],[{"bbox":[113,96,389,137],"type":"text","angle":0,"index":0,"text":"就可以让程序开始执行。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"2c4eb7b4-860d-4bb2-8298-faee50eb9fa5","page_size":[595,841],"block_position":"89-0"},{"bbox":[86,406,127,419],"type":"text","angle":0,"index":5,"text":"多次性：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"5b715b21-76ae-45d2-9adc-ef7ed1daa876","page_size":[595,841],"block_position":"89-1"},{"bbox":[88,421,127,434],"type":"text","angle":0,"index":6,"text":"对换性：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"5114418a-2487-41f9-a6f6-733b366c37b1","page_size":[595,841],"block_position":"89-2"},{"bbox":[88,437,127,450],"type":"text","angle":0,"index":7,"text":"驻留性：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"7b720017-6bb6-4d8a-8ff1-6b157ff6e748","page_size":[595,841],"block_position":"89-3"},{"bbox":[104,468,534,509],"type":"text","angle":0,"index":8,"text":"多次性：无需在作业运行时一次性全部装入内存，而是允许被分成多次调入内存。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"cac422ef-0656-4511-ae42-65fd8e33990b","page_size":[595,841],"block_position":"89-4"}],[{"bbox":[87,74,136,89],"type":"title","angle":0,"index":0,"text":"# 储管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":90,"id":"7232efb4-25d5-44fc-b5e8-2035461ade37","page_size":[595,841],"block_position":"90-0"},{"bbox":[87,110,150,126],"type":"title","angle":0,"index":1,"text":"# 存储管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":90,"id":"d848793b-9952-4ede-90e0-6dbf7f6dbe20","page_size":[595,841],"block_position":"90-1"},{"bbox":[101,215,349,246],"type":"text","angle":0,"index":5,"text":"若内存空间不够，由操作系统负责将内存","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"5c8a39a3-c9a2-440d-8ec9-672ad6a6efd7","page_size":[595,841],"block_position":"90-2"},{"bbox":[86,312,310,326],"type":"text","angle":0,"index":7,"text":"局部性原理：时间局部性：数据可能再次被访问","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"b7924928-0f25-4f42-927b-185686609fa1","page_size":[595,841],"block_position":"90-3"},{"bbox":[88,327,310,341],"type":"text","angle":0,"index":8,"text":"空间局部性：邻近的存储单元也有可能被访问到","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"c38745ec-1453-481a-acb3-28c561523e10","page_size":[595,841],"block_position":"90-4"},{"bbox":[87,359,195,372],"type":"text","angle":0,"index":9,"text":"请求分页存储管理方式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"3487ae9e-76fc-43c6-9cc6-8a2b72241df5","page_size":[595,841],"block_position":"90-5"},{"bbox":[87,406,132,419],"type":"text","angle":0,"index":10,"text":"页面置换","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"49a052c1-c670-4066-91c9-2e069a890e8c","page_size":[595,841],"block_position":"90-6"},{"bbox":[88,422,153,434],"type":"text","angle":0,"index":11,"text":"页面置换策略","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"6df65910-b7f8-4a01-9a64-b6fcdc0356e2","page_size":[595,841],"block_position":"90-7"},{"bbox":[152,447,595,654],"index":12,"angle":0,"type":"image","img_path":"/0f527ba7ba2844cf6742aa16209b12b9e06a09db2ec5029c2603849b08b67232.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7445378151260504,"page_idx":90,"id":"d683aa27-7e83-420f-9df4-666bf5b22d85","page_size":[595,841],"block_position":"90-8"},{"bbox":[87,686,153,699],"type":"text","angle":0,"index":13,"text":"缺页中断机构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"9e4ffff6-a61f-4706-9ac0-e563d4122ad5","page_size":[595,841],"block_position":"90-9"}],[{"bbox":[113,161,511,250],"index":1,"angle":0,"type":"table_body","img_path":"/","id":"bbaba7fe-53b1-4fa9-b147-c88dff321f36","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>页号</td><td>内存块号</td><td>状态位</td><td>访问字段</td><td>修改位</td><td>外存地址</td></tr><tr><td>0</td><td>c</td><td>1</td><td>0</td><td>0</td><td>x</td></tr><tr><td>1</td><td>b</td><td>1</td><td>10</td><td>0</td><td>y</td></tr><tr><td>2</td><td>无</td><td>0</td><td>0</td><td>0</td><td>z</td></tr></table>","page_idx":91,"page_size":[595,841],"block_position":"91-0"},{"bbox":[110,372,578,402],"type":"text","angle":0,"index":5,"text":"改页表中相应的页表项。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"ae991455-a8a2-41d2-a367-67e6ab1a505d","page_size":[595,841],"block_position":"91-1"}],[{"bbox":[91,121,517,449],"index":3,"angle":0,"type":"image","img_path":"/400fb73ec49eb9f39fe4a2543a92ab529de1188b40d5a8ca683cee439aa7d348.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7159663865546219,"page_idx":92,"id":"e0fdf21a-ef41-4906-8662-992c49281139","page_size":[595,841],"block_position":"92-0"}],[{"bbox":[110,108,310,188],"type":"text","angle":0,"index":1,"text":"$\\textcircled{1}$需修改快表中的数据，只有要将快表项删除时才需要写回内存中的慢表。这样可以减少访存次数。","id":"f8043f58-37f2-4816-b0bb-43ad2db631aa","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"page_size":[595,841],"block_position":"93-0"},{"bbox":[110,206,306,236],"type":"text","angle":0,"index":2,"text":"②和普通的中断处理一样，缺页中断处理依然需要保留CPU现场。","id":"a1538705-c516-4b87-b1d8-d9375e87317b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"page_size":[595,841],"block_position":"93-1"},{"bbox":[110,254,311,285],"type":"text","angle":0,"index":3,"text":"③需要用某种“页面置换算法”","id":"1148f2f6-bdd6-4c3e-bceb-8462bd5c718c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"page_size":[595,841],"block_position":"93-2"},{"bbox":[110,302,301,350],"type":"text","angle":0,"index":4,"text":"$\\textcircled{4}$ 换入/换出页面都需要启动慢速的I/O操作，可见，如果换入/换出太频繁，会有很大的开销。","id":"e9918287-05f5-4bd4-ae40-7de1f7af09bb","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"page_size":[595,841],"block_position":"93-3"},{"bbox":[110,370,304,417],"type":"text","angle":0,"index":5,"text":"③页面调入内存后，需要修改慢表，同时也需要将表项复制到快","id":"1d9b4033-1d80-4c13-9643-8a2d2f9fc0e7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"page_size":[595,841],"block_position":"93-4"},{"bbox":[88,453,148,465],"type":"text","angle":0,"index":7,"text":"1、请求调页","id":"e19ce32b-9c0f-4d22-9903-4a30df813273","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"page_size":[595,841],"block_position":"93-5"},{"bbox":[88,469,148,481],"type":"text","angle":0,"index":8,"text":"2、页面置换","id":"9ab3b7dc-bebb-40a2-acf6-cec8721a233b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"page_size":[595,841],"block_position":"93-6"},{"bbox":[88,484,148,496],"type":"text","angle":0,"index":9,"text":"3、修改数据","id":"757bc315-456c-4c3f-a0f5-a89175cd2c23","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"page_size":[595,841],"block_position":"93-7"},{"bbox":[88,515,154,528],"type":"title","angle":0,"index":11,"text":"# 页面置换算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":93,"id":"8a4034b8-13f0-4a3c-9921-59def254204f","page_size":[595,841],"block_position":"93-8"},{"bbox":[88,531,190,543],"type":"text","angle":0,"index":12,"text":"1、最佳置换算法OPT","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"7acea4bf-d0e0-4a9b-9345-c095d4b2cdb3","page_size":[595,841],"block_position":"93-9"},{"bbox":[105,546,339,559],"type":"text","angle":0,"index":13,"text":"将来不在访问的页面或者长时间内不会访问的页面","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"2317aa00-4e2f-4061-bb7f-3f13fc8c2865","page_size":[595,841],"block_position":"93-10"},{"bbox":[87,562,214,574],"type":"text","angle":0,"index":14,"text":"2、先进先出置换算法FIFO","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"187aa2f3-5b13-40b1-809f-3967efc239cf","page_size":[595,841],"block_position":"93-11"},{"bbox":[105,577,401,590],"type":"text","angle":0,"index":15,"text":"最先调入内存的页面，或者在也内存中驻留时间最久的页面算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"71f5d471-bfcd-4d6a-b45a-664cc821db99","page_size":[595,841],"block_position":"93-12"},{"bbox":[88,593,242,605],"type":"text","angle":0,"index":16,"text":"3、 最近最久未使用置换算法 LRU","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"74487016-1f50-4123-8218-2eb6014fd6c5","page_size":[595,841],"block_position":"93-13"},{"bbox":[105,608,286,621],"type":"text","angle":0,"index":17,"text":"最近一段时间内最长没有被访问的页面","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"5f7126fb-eabb-42ec-9a6e-5f02b2c2db0a","page_size":[595,841],"block_position":"93-14"},{"bbox":[88,624,232,636],"type":"text","angle":0,"index":18,"text":"4、最近最少使用置换算法LFU","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"82729e2a-3b03-4648-a7e4-7ae1315ee809","page_size":[595,841],"block_position":"93-15"},{"bbox":[105,640,265,652],"type":"text","angle":0,"index":19,"text":"被访问的频次而不是LRU中的事件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"b3b269e0-7fdd-45ac-911b-f65a457ad7df","page_size":[595,841],"block_position":"93-16"},{"bbox":[105,655,307,667],"type":"text","angle":0,"index":20,"text":"淘汰过去一段话时间里访问次数最少的页面","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"db6ceef7-80c7-4e83-a77e-2d894d05289f","page_size":[595,841],"block_position":"93-17"},{"bbox":[88,671,213,683],"type":"text","angle":0,"index":21,"text":"5、 时钟置换算法（CLOCK）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"5fd3610f-2c80-4abb-a742-b9fd58cefc56","page_size":[595,841],"block_position":"93-18"},{"bbox":[105,687,202,699],"type":"text","angle":0,"index":22,"text":"简单的时钟置换算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"1974117d-5dc4-4b61-81a7-942bf6ae3b9e","page_size":[595,841],"block_position":"93-19"}],[{"bbox":[549,260,595,280],"type":"aside_text","angle":0,"index":-999991,"text":"5号页（","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":94,"is_discarded":true,"id":"08385cf5-6410-4377-8976-f865e7e5131a","page_size":[595,841],"block_position":"94-0"},{"bbox":[126,74,595,146],"type":"text","angle":0,"index":0,"text":"简单的CLOCK算法实现方法：为每个页面设置一个访问位，再将内存中的页面都通过链接指一个循环队列。当某页被访问时，其访问位置为1。当需要淘汰一个页面时，只需检查页的如果是0，就选择该页换出：如果是1，则将它置为0，暂不换出，继续检查下一个页面，若描中所有页面都是1，则将这些页面的访问位依次置为0后，再进行第二轮扫描（第二轮扫描","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":94,"id":"5ac0e642-fe4a-48b4-9e3b-c0ada677d001","page_size":[595,841],"block_position":"94-1"},{"bbox":[120,184,525,257],"index":1,"angle":0,"type":"image","img_path":"/fcf636923e500cc700596c00e999d933b2176565f136e95acd8bf04082cd0471.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.680672268907563,"page_idx":94,"id":"8d33d4a0-da69-4c18-ad3b-56734d322ff8","page_size":[595,841],"block_position":"94-2"},{"bbox":[121,264,348,297],"type":"text","angle":0,"index":2,"text":"例：假设系统为某进程分配了五个内存块，并考虑到有以下页面号引用串：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":94,"id":"9d536591-bad7-4ebf-9695-73f6423f85e4","page_size":[595,841],"block_position":"94-3"},{"bbox":[123,297,257,314],"type":"text","angle":0,"index":3,"text":"1,3,4,2,5,6,3,47","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":94,"id":"0c479b8f-8b0e-4da6-9f5e-0321f7aabf2d","page_size":[595,841],"block_position":"94-4"},{"bbox":[105,390,141,403],"type":"text","angle":0,"index":4,"text":"改进型","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":94,"id":"6ad029ff-fd70-4669-af8d-a67ae290d493","page_size":[595,841],"block_position":"94-5"},{"bbox":[86,424,156,443],"type":"title","angle":0,"index":5,"text":"# 文件系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":94,"id":"15e912a8-37b8-4aef-b2a5-2f22b626157a","page_size":[595,841],"block_position":"94-6"},{"bbox":[86,485,154,504],"type":"title","angle":0,"index":6,"text":"# 文件命名","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":94,"id":"f9d07cec-7dcd-4318-81ab-91e8d0ac23cd","page_size":[595,841],"block_position":"94-7"},{"bbox":[92,540,368,743],"index":7,"angle":0,"type":"table_body","img_path":"/","id":"1479bb68-4c29-467e-b812-55b5f3b626d2","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>扩展名</td><td>含 义</td></tr><tr><td>file.bak</td><td>备份文件</td></tr><tr><td>file.c</td><td>C源程序文件</td></tr><tr><td>file.gif</td><td>符合图形交换格式的图像文件</td></tr><tr><td>file.hlp</td><td>帮助文件</td></tr><tr><td>file.html</td><td>WWW超文本标记语言文档</td></tr><tr><td>file.jpg</td><td>符合JPEG编码标准的静态图片</td></tr><tr><td>file.mp3</td><td>符合MP3音频编码格式的音乐文件</td></tr><tr><td>file.mpg</td><td>符合MPEG编码标准的电影</td></tr><tr><td>file.o</td><td>目标文件(编译器输出格式,尚未连接)</td></tr><tr><td>file.pdf</td><td>pdf格式的文件</td></tr><tr><td>file.ps</td><td>PostScript文件</td></tr><tr><td>file.tex</td><td>为TEX格式化程序准备的输入文件</td></tr><tr><td>file.txt</td><td>一般正文文件</td></tr><tr><td>file.zip</td><td>压缩文件</td></tr></table>","page_idx":94,"page_size":[595,841],"block_position":"94-8"}],[{"bbox":[88,84,160,103],"type":"title","angle":0,"index":0,"text":"# 文件结构：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":95,"id":"f28d695c-c71e-4dc1-a36d-366f0c77b08b","page_size":[595,841],"block_position":"95-0"},{"bbox":[87,139,205,153],"type":"text","angle":0,"index":1,"text":"字节序列、记录序列、树","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":95,"id":"97d5d32d-eb55-4b9e-aae7-b3dfb4bc330f","page_size":[595,841],"block_position":"95-1"},{"bbox":[88,155,190,169],"type":"text","angle":0,"index":2,"text":"1、无结构的字节序列","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":95,"id":"aac0f5b1-27d6-4836-b1e3-4a09542b13b4","page_size":[595,841],"block_position":"95-2"},{"bbox":[123,185,459,350],"index":3,"angle":0,"type":"image","img_path":"/b464b4362a2fe89910a9e4b68027cab3ad7ea56317c34a52fb3c0cbe2fcb1a58.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5647058823529412,"page_idx":95,"id":"3df5827f-e169-4cf1-8f45-5339542d2823","page_size":[595,841],"block_position":"95-3"},{"bbox":[123,358,264,371],"type":"text","angle":0,"index":4,"text":"3、记录序列 有固定格式 基于","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":95,"id":"e1c197be-438c-4948-a17b-8378f423690f","page_size":[595,841],"block_position":"95-4"},{"bbox":[124,373,168,386],"type":"text","angle":0,"index":5,"text":"树形结构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":95,"id":"3c244dcf-88e9-4097-b03c-2e68f45220ac","page_size":[595,841],"block_position":"95-5"},{"bbox":[124,389,210,402],"type":"text","angle":0,"index":6,"text":"由一棵记录树构成","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":95,"id":"dd7a8a12-1b70-40bf-9fe2-b13dff64a84c","page_size":[595,841],"block_position":"95-6"},{"bbox":[87,423,154,441],"type":"title","angle":0,"index":7,"text":"# 文件类型","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":95,"id":"e840344b-5328-481a-bfa3-adf3476f0e8e","page_size":[595,841],"block_position":"95-7"},{"bbox":[120,515,255,529],"type":"text","angle":0,"index":9,"text":"ASCII文件、二进制文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":95,"id":"ed7f5ee5-0f6d-4de3-8fd7-4d6f96074612","page_size":[595,841],"block_position":"95-8"},{"bbox":[123,604,301,618],"type":"text","angle":0,"index":12,"text":"字符特殊文件、块设备特殊文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":95,"id":"6be9e9e5-e297-4810-b392-2f0a2510abb8","page_size":[595,841],"block_position":"95-9"},{"bbox":[86,650,248,663],"type":"text","angle":0,"index":13,"text":"特殊文件：前者鼠标键盘后者磁盘","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":95,"id":"1e03e3bc-6c86-4269-bc09-89b943fe11a8","page_size":[595,841],"block_position":"95-10"},{"bbox":[87,666,351,678],"type":"text","angle":0,"index":14,"text":"Gcc -o hello hello.c 可执行的文件就是二进制文件 ELF 格式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":95,"id":"ae18a2d0-7006-4158-9eac-8551d2432ef8","page_size":[595,841],"block_position":"95-11"},{"bbox":[88,681,169,694],"type":"text","angle":0,"index":15,"text":"目录文件~文件夹","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":95,"id":"0f7331a2-dd33-464b-9a15-1c568de55312","page_size":[595,841],"block_position":"95-12"},{"bbox":[88,697,132,709],"type":"text","angle":0,"index":16,"text":"文件访问","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":95,"id":"612a90c4-52ee-4462-8b98-b50656222577","page_size":[595,841],"block_position":"95-13"},{"bbox":[88,712,132,725],"type":"text","angle":0,"index":17,"text":"顺序访问","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":95,"id":"5c126bae-b684-45bf-934e-5bef529565d0","page_size":[595,841],"block_position":"95-14"},{"bbox":[87,728,404,741],"type":"text","angle":0,"index":18,"text":"从文件开始按顺序读取文件的全部字节或记录，不能跳过某一些内容","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":95,"id":"6920997c-bba7-4f22-9473-71755c6788c4","page_size":[595,841],"block_position":"95-15"},{"bbox":[88,743,132,756],"type":"text","angle":0,"index":19,"text":"随机访问","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":95,"id":"380faaf3-3295-4e56-aa4f-ca78e1032e57","page_size":[595,841],"block_position":"95-16"}],[{"bbox":[87,79,373,107],"type":"text","angle":0,"index":0,"text":"能够以任何次序读取其中字节或记录的文件称为随机访问文件文件属性（元数据）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":96,"id":"074edb00-e349-4938-a828-fe4d1601a6a0","page_size":[595,841],"block_position":"96-0"},{"bbox":[113,124,347,340],"index":1,"angle":0,"type":"table_body","img_path":"/","id":"60d03c6c-df41-42a6-8fde-11f95babdc2b","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>属性</td><td>含义</td></tr><tr><td>保护</td><td>谁可以存取文件,以什么方式存取文件</td></tr><tr><td>口令</td><td>存取文件需要的口令</td></tr><tr><td>创建者</td><td>创建文件者的ID</td></tr><tr><td>所有者</td><td>当前所有者</td></tr><tr><td>只读标志</td><td>0表示读/写;1表示只读</td></tr><tr><td>隐藏标志</td><td>0表示正常;1表示不在列表中显示</td></tr><tr><td>系统标志</td><td>0表示普通文件;1表示系统文件</td></tr><tr><td>存档标志</td><td>0表示已经备份;1表示需要备份</td></tr><tr><td>ASCII/二进制标志</td><td>0表示ASCII码文件;1表示二进制文件</td></tr><tr><td>随机存取标志</td><td>0表示只允许顺序存取;1表示随机存取</td></tr><tr><td>临时标志</td><td>0表示正常;1表示进程退出时删除该文件</td></tr><tr><td>加锁标志</td><td>0表示未加锁;非零表示加锁</td></tr><tr><td>记录长度</td><td>一个记录中的字节数</td></tr><tr><td>键的位置</td><td>每个记录中键的偏移量</td></tr><tr><td>键的长度</td><td>键字段的字节数</td></tr><tr><td>创建时间</td><td>文件创建的日期和时间</td></tr><tr><td>最后一次存取时间</td><td>文件上一次存取的日期和时间</td></tr><tr><td>最后一次修改时间</td><td>文件上一次修改的日期和时间</td></tr><tr><td>当前大小</td><td>文件的字节数</td></tr><tr><td>最大长度</td><td>文件可能增长到的字节数</td></tr></table>","page_idx":96,"page_size":[595,841],"block_position":"96-1"},{"bbox":[87,359,286,371],"type":"text","angle":0,"index":2,"text":"1、 文件名：由创建文件的用户决定文件名","id":"ffe8ef34-1c95-498e-b7d5-5d1c02a80236","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":96,"page_size":[595,841],"block_position":"96-2"},{"bbox":[87,375,383,387],"type":"text","angle":0,"index":3,"text":"2、标识符:标识符是操作系统用于区分各个文件的一种内部名称","id":"23863054-a07a-41f0-9a7b-52ac9b30cfd8","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":96,"page_size":[595,841],"block_position":"96-3"},{"bbox":[87,391,192,402],"type":"text","angle":0,"index":4,"text":"3、类型：文件的类型","id":"016bd150-d10f-4333-b7a0-78788a67b430","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":96,"page_size":[595,841],"block_position":"96-4"},{"bbox":[87,406,192,418],"type":"text","angle":0,"index":5,"text":"4、位置：存放的路径","id":"21f88dfc-d660-4f40-8f65-d8a97ea79dc7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":96,"page_size":[595,841],"block_position":"96-5"},{"bbox":[86,421,373,434],"type":"text","angle":0,"index":7,"text":"无结构文件：由一些二进制或字符流组成，又称“流式文件“","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":96,"id":"031e40a2-7c9a-478f-85c4-2f8eef08f1c0","page_size":[595,841],"block_position":"96-6"},{"bbox":[87,437,237,449],"type":"text","angle":0,"index":8,"text":"有结构文件：由一个个记录组成","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":96,"id":"3a7f8e73-733d-4773-b23a-4b9be1997d37","page_size":[595,841],"block_position":"96-7"},{"bbox":[87,453,221,465],"type":"text","angle":0,"index":9,"text":"文件之间应该怎样组织起来？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":96,"id":"6f029da9-cd44-4b3b-8c3f-c7b951471d22","page_size":[595,841],"block_position":"96-8"},{"bbox":[101,475,509,641],"index":10,"angle":0,"type":"image","img_path":"/b29ddbda9ea126aae0c65b85504a9505a1c1c2ed618fcce250405b7a859aaced.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6857142857142857,"page_idx":96,"id":"5393f594-df56-471b-8bdb-955872cf0735","page_size":[595,841],"block_position":"96-9"}],[{"bbox":[91,74,421,245],"index":0,"angle":0,"type":"image","img_path":"/3573b1798d26f523c9c1c39f4a7b799f23f33edde7d0558cdf4835c56be969a2.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5546218487394958,"page_idx":97,"id":"733c67a7-415c-4d28-9f68-d44ec775a639","page_size":[595,841],"block_position":"97-0"},{"bbox":[87,270,292,449],"index":1,"angle":0,"type":"image","img_path":"/92c082502f8465a1cc06b1fdb338aa9adac8172fbfaa16df7b8d730ed91cd6c0.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3445378151260504,"page_idx":97,"id":"db634b60-a881-4813-9449-c04b6de18408","page_size":[595,841],"block_position":"97-1"},{"bbox":[88,501,439,698],"index":2,"angle":0,"type":"image","img_path":"/973251a710ef2f8b351c93744ddff129a1fb12960078814506f313c8a8245fa8.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5899159663865546,"page_idx":97,"id":"7c85d324-7c9b-4e0b-8ca6-7d60b65a1b88","page_size":[595,841],"block_position":"97-2"}],[{"bbox":[88,84,202,103],"type":"title","angle":0,"index":0,"text":"# 文件的逻辑结构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":98,"id":"e6b56737-cacd-4a68-ac26-e9466efdd5bb","page_size":[595,841],"block_position":"98-0"},{"bbox":[86,155,270,169],"type":"text","angle":0,"index":1,"text":"逻辑上可以相邻，物理结构可以不相邻","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":98,"id":"11fcb107-968b-4490-89f3-fd2334518f01","page_size":[595,841],"block_position":"98-1"},{"bbox":[87,186,142,200],"type":"text","angle":0,"index":2,"text":"无结构文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":98,"id":"7cd253c9-2684-4c1a-be7b-5bdaafd26950","page_size":[595,841],"block_position":"98-2"},{"bbox":[87,221,202,239],"type":"title","angle":0,"index":3,"text":"# 文件的物理结构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":98,"id":"1068f0f1-0d27-4893-b511-ad4dd0b4495c","page_size":[595,841],"block_position":"98-3"},{"bbox":[86,322,279,336],"type":"text","angle":0,"index":4,"text":"文件最后时存储在磁盘上，要读到内存里","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":98,"id":"e157f6b9-9c27-4eb5-9693-0279d778a335","page_size":[595,841],"block_position":"98-4"},{"bbox":[87,338,153,351],"type":"text","angle":0,"index":5,"text":"磁盘分配空间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":98,"id":"07cb17ed-68c9-4473-8d24-6695090deba7","page_size":[595,841],"block_position":"98-5"},{"bbox":[87,354,132,366],"type":"text","angle":0,"index":6,"text":"连续分配","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":98,"id":"33460fd7-dcb2-4905-a322-45ecd3dbad91","page_size":[595,841],"block_position":"98-6"},{"bbox":[88,370,132,381],"type":"text","angle":0,"index":7,"text":"链接分配","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":98,"id":"e049e544-6a17-4ca4-82d6-33ac6a1be1c3","page_size":[595,841],"block_position":"98-7"},{"bbox":[88,386,132,397],"type":"text","angle":0,"index":8,"text":"索引分配","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":98,"id":"cf95ee88-8f22-4807-9876-a7ae892c5aaf","page_size":[595,841],"block_position":"98-8"},{"bbox":[88,401,132,413],"type":"text","angle":0,"index":9,"text":"连续分配","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":98,"id":"ce8da090-8e28-40c9-9833-13da3e78324e","page_size":[595,841],"block_position":"98-9"},{"bbox":[86,416,479,444],"type":"text","angle":0,"index":10,"text":"连续文件又称为顺序文件，它把逻辑文件中的信息顺序地存放到一组相邻接的磁盘块内存与外存以块位单位传递数据","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":98,"id":"90f2ebc7-7706-410e-bbf4-3d84c13c2cfe","page_size":[595,841],"block_position":"98-10"},{"bbox":[88,446,436,638],"index":11,"angle":0,"type":"image","img_path":"/221571589ca3c06544fd3a9b7448e9fb6c292fd1d7b9ce40ce811cc084fcf1fc.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.584873949579832,"page_idx":98,"id":"1c9e9b2a-6114-4e2a-96e4-972d65545167","page_size":[595,841],"block_position":"98-11"},{"bbox":[87,650,374,663],"type":"text","angle":0,"index":12,"text":"文件的逻辑地址也可以表示为（逻辑块号，块内地址）的形式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":98,"id":"f0a75cce-59ee-46de-9cd8-39f632cf2177","page_size":[595,841],"block_position":"98-12"},{"bbox":[87,686,146,702],"type":"title","angle":0,"index":13,"text":"# 连续分配","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":98,"id":"f19d8ed6-f872-4b21-8577-940ff0cddace","page_size":[595,841],"block_position":"98-13"},{"bbox":[88,736,247,750],"type":"text","angle":0,"index":14,"text":"要实现逻辑地址到物理地址的映射","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":98,"id":"47b1169c-01a5-4dc6-8389-179012d22bb2","page_size":[595,841],"block_position":"98-14"}],[{"bbox":[88,78,157,243],"index":0,"angle":0,"type":"image","img_path":"/3006f13db25abdf16b60ea993a03b02ac91798731b4eff30e6b37a75ace186b3.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":99,"id":"5b35ca4d-b2c5-4c24-8a00-77dd1106b7bf","page_size":[595,841],"block_position":"99-0"},{"bbox":[227,76,248,95],"index":2,"angle":0,"type":"image","img_path":"/21fe7e26835c77cc107ceb08ae2d0464d4ce8ecbe30a66270a0e06ab6c121e1e.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":99,"id":"c14222bd-5388-4835-ae18-20c851a15c64","page_size":[595,841],"block_position":"99-1"},{"bbox":[172,95,248,158],"index":3,"angle":0,"type":"image","img_path":"/f55df14d2b6431be7658334bfd953833083da8566e63f89e0c089bd0e54e751a.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":99,"id":"13dd773e-2954-4b53-bf17-b294124be793","page_size":[595,841],"block_position":"99-2"},{"bbox":[254,74,401,93],"type":"text","angle":0,"index":4,"text":"扇区：磁盘访问的最小单位","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":99,"id":"b0873972-c56a-4de7-937a-bf4794acc522","page_size":[595,841],"block_position":"99-3"},{"bbox":[254,100,419,134],"type":"text","angle":0,"index":5,"text":"簇(cluster)：由多个扇区组成也称为磁盘块","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":99,"id":"7b086811-034d-462c-b976-53dc299e3723","page_size":[595,841],"block_position":"99-4"},{"bbox":[116,264,470,455],"index":8,"angle":0,"type":"image","img_path":"/82b7c873ed58dfb1f99d818c77feb3ac3ce0df2738a2ec718885825417f284b6.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5949579831932773,"page_idx":99,"id":"1b632a02-9ce9-4dc7-a913-317818429813","page_size":[595,841],"block_position":"99-5"},{"bbox":[113,457,326,535],"index":9,"angle":0,"type":"table_body","img_path":"/","id":"23568721-991a-4fc7-bb15-747f05114479","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>文件名</td><td>......</td><td>起始块号</td><td>长度</td></tr><tr><td>aaa</td><td>...</td><td>4</td><td>3</td></tr><tr><td>bbb</td><td>...</td><td>10</td><td>4</td></tr><tr><td>......</td><td>...</td><td>...</td><td>...</td></tr></table>","page_idx":99,"page_size":[595,841],"block_position":"99-6"},{"bbox":[87,546,127,557],"type":"text","angle":0,"index":11,"text":"CD-ROM","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":99,"id":"ed8dc66b-2b4d-48eb-be5d-94e90bb29b21","page_size":[595,841],"block_position":"99-7"},{"bbox":[88,562,143,575],"type":"text","angle":0,"index":12,"text":"扇区：512B","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":99,"id":"34050c4a-1a94-42fb-84bc-0dbfeae897c4","page_size":[595,841],"block_position":"99-8"}],[{"bbox":[88,84,147,101],"type":"title","angle":0,"index":0,"text":"# 链式分配","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":100,"id":"4cddcd9f-a65c-4e9a-989d-c814e005ebaa","page_size":[595,841],"block_position":"100-0"},{"bbox":[110,157,304,353],"index":1,"angle":0,"type":"image","img_path":"/d76cdf841fc51cd71e1e65a6e890e4d95125937f42959111c8137c2089026605.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.32605042016806723,"page_idx":100,"id":"220db725-3f89-4c9f-a888-370a9349d7a1","page_size":[595,841],"block_position":"100-1"},{"bbox":[87,374,147,391],"type":"title","angle":0,"index":2,"text":"# 索引分配","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":100,"id":"2a0dffa0-efdf-4266-b234-4b7aa3c53c92","page_size":[595,841],"block_position":"100-2"},{"bbox":[88,431,147,448],"type":"title","angle":0,"index":3,"text":"# 隐式链接","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":100,"id":"69c024af-816b-47ec-b293-34ff25ac9950","page_size":[595,841],"block_position":"100-3"},{"bbox":[96,481,246,613],"index":4,"angle":0,"type":"image","img_path":"/0eb7cca7f37f86fa2d710ee80c01d8e0876e05525acc9cc7a61bd0292bba9dcd.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.25210084033613445,"page_idx":100,"id":"6297a088-c81f-42b1-ba43-9bbf5e9393f7","page_size":[595,841],"block_position":"100-4"},{"bbox":[247,483,389,515],"type":"text","angle":0,"index":5,"text":"索引分配：将所有指针放在一起","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":100,"id":"c411cace-15e8-42ab-8487-a36cef04b6ea","page_size":[595,841],"block_position":"100-5"},{"bbox":[88,658,147,675],"type":"title","angle":0,"index":9,"text":"# 显式链接","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":100,"id":"11a762cc-1628-4d0b-bba7-4c5f096525c6","page_size":[595,841],"block_position":"100-6"},{"bbox":[87,708,343,723],"type":"text","angle":0,"index":10,"text":"把物理块的指针显示地存放在一张表中，即文件分配表","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":100,"id":"fd68e0c9-2d65-47d3-88f0-3dfa7277a632","page_size":[595,841],"block_position":"100-7"},{"bbox":[88,740,254,753],"type":"text","angle":0,"index":11,"text":"一个磁盘仅设置一张FAT，常驻内存","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":100,"id":"bf964a20-2f65-44d1-af8a-a33f2163878d","page_size":[595,841],"block_position":"100-8"}],[{"bbox":[88,79,153,91],"type":"title","angle":0,"index":0,"text":"# 支持随机访问","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":101,"id":"351d4cd0-211d-4334-8213-1c031d5b5ac8","page_size":[595,841],"block_position":"101-0"},{"bbox":[88,95,164,107],"type":"title","angle":0,"index":1,"text":"# 不需要访问磁盘","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":101,"id":"3edbd3fa-a15a-4636-837d-30fa478c1228","page_size":[595,841],"block_position":"101-1"},{"bbox":[101,113,422,273],"index":2,"angle":0,"type":"image","img_path":"/c56ead3f2a5b091034517a12c4803a53e71ae2cc2209fa07aeb1cdad7863f989.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5394957983193277,"page_idx":101,"id":"420a0e96-53d8-4224-ae0f-03df502cf913","page_size":[595,841],"block_position":"101-2"},{"bbox":[101,278,398,303],"type":"text","angle":0,"index":3,"text":"的映射关系）。索引表存放的磁盘块称为索引块。文件数据存放的磁盘块称为数据块。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":101,"id":"aacff150-5bd1-4bca-b21f-8358f141d6ce","page_size":[595,841],"block_position":"101-3"},{"bbox":[91,304,399,431],"index":4,"angle":0,"type":"image","img_path":"/331cf78a06752c6a929f5d56d7c4a48df2790d01c0cd19f508cfa670f32b0be8.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5176470588235295,"page_idx":101,"id":"da883633-0e15-4adb-8db2-3d92c6d2ab4f","page_size":[595,841],"block_position":"101-4"},{"bbox":[87,437,175,450],"type":"text","angle":0,"index":5,"text":"指针：磁盘块地址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":101,"id":"e9673273-3745-49e8-9d17-0f8830967f9d","page_size":[595,841],"block_position":"101-5"},{"bbox":[86,453,455,481],"type":"text","angle":0,"index":6,"text":"解决方案：1链接方案：如果索引表太大，那么可以将多个索引块链接起来存放2、","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":101,"id":"cb3c8ff8-0da0-4bde-9c69-444f0f34849e","page_size":[595,841],"block_position":"101-6"},{"bbox":[88,502,154,521],"type":"title","angle":0,"index":7,"text":"# 多级索引","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":101,"id":"16d0467e-3f84-44d9-99bd-3aab311b842b","page_size":[595,841],"block_position":"101-7"},{"bbox":[92,555,479,740],"index":8,"angle":0,"type":"image","img_path":"/e280a383db867ccc97eee2b5202599212473573c6d528aa9dd58f9e993d71add.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6504201680672269,"page_idx":101,"id":"f98c1902-a8b4-4a44-8383-92e87f004809","page_size":[595,841],"block_position":"101-8"}],[{"bbox":[87,79,420,91],"type":"text","angle":0,"index":0,"text":"建立多层索引，类似于多级页表，使第一层索引块指向第二层的索引块。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":102,"id":"70b55279-5a20-41ec-855b-c609435743bd","page_size":[595,841],"block_position":"102-0"},{"bbox":[133,93,301,105],"type":"text","angle":0,"index":1,"text":"文件大小的要求再建立第三层、第四层索引块。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":102,"id":"d2f3728e-e28d-4a0a-8ad0-7c1840d940a5","page_size":[595,841],"block_position":"102-1"},{"bbox":[101,110,307,275],"index":2,"angle":0,"type":"image","img_path":"/fc08a8388773bdc2a81ddd06eb258ebed0de11948d88f9cf2a2a900d1f0d0d18.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.346218487394958,"page_idx":102,"id":"6d0f3131-786c-4d74-bf70-19dbf8799772","page_size":[595,841],"block_position":"102-2"},{"bbox":[317,106,503,127],"type":"text","angle":0,"index":3,"text":"假设磁盘块大小为1KB，一个索引表项占4B，则一个磁盘块只能存放256个索引项。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":102,"id":"48b0815d-d76f-4ebb-b139-a7d955f5c166","page_size":[595,841],"block_position":"102-3"},{"bbox":[317,136,506,155],"type":"text","angle":0,"index":4,"text":"256*256*1KB=65,536KB=64MB","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":102,"id":"095ef251-55ab-42b6-bb02-82d460aa9590","page_size":[595,841],"block_position":"102-4"},{"bbox":[317,156,500,176],"type":"text","angle":0,"index":5,"text":"可根据逻辑块号算出应该查找索引表中的哪个表项。如：要访问1026号逻辑块，则","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":102,"id":"f671873c-4d9e-458e-9363-444a752360c5","page_size":[595,841],"block_position":"102-5"},{"bbox":[317,176,418,185],"type":"text","angle":0,"index":6,"text":"1026/256=4，1026%256=2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":102,"id":"6ba8edd9-2e38-4f2b-8699-14e93b49012a","page_size":[595,841],"block_position":"102-6"},{"bbox":[317,185,509,224],"type":"text","angle":0,"index":7,"text":"因此可以先将一级索引表调入内存，查询4号表项，将其对应的二级索引表调入内存，再查询二级索引表的2号表项即可知道1026号逻辑块存放的磁盘块号了。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":102,"id":"aed66f8a-ee7b-4648-a8fe-8253ff0a1e06","page_size":[595,841],"block_position":"102-7"},{"bbox":[88,315,154,334],"type":"title","angle":0,"index":8,"text":"# 混合索引","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":102,"id":"fa819769-6bb1-45b2-b4f5-e4de725be438","page_size":[595,841],"block_position":"102-8"},{"bbox":[94,381,521,568],"index":9,"angle":0,"type":"image","img_path":"/c51396610d11cd4829091a4eb11ce03671bd4cc3687292231b44292b2090fcb6.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7176470588235294,"page_idx":102,"id":"361a8def-8124-4ebb-a1d6-b73011eaa50a","page_size":[595,841],"block_position":"102-9"},{"bbox":[94,588,377,746],"index":10,"angle":0,"type":"image","img_path":"/400072df8da19987149265a7a11a1d905eebeaf12e7302b10a5376e852aa341e.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4756302521008403,"page_idx":102,"id":"5a1e8c86-d0e1-4971-8f66-d5bc667b06e7","page_size":[595,841],"block_position":"102-10"}],[{"bbox":[88,79,143,91],"type":"title","angle":0,"index":0,"text":"# 成组链接法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":103,"id":"1b891bb9-fa2d-4d28-a328-33e1f9086eaa","page_size":[595,841],"block_position":"103-0"},{"bbox":[88,94,340,277],"index":1,"angle":0,"type":"image","img_path":"/3ac5a4da438dc4652322377ae219cc6c94a0073a32ccc34bd0c7f9c8037bc76d.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4235294117647059,"page_idx":103,"id":"0ecd690e-2a03-4d8b-8905-04111a3ca824","page_size":[595,841],"block_position":"103-1"},{"bbox":[88,281,111,294],"type":"title","angle":0,"index":2,"text":"# 文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":103,"id":"6a9f0091-d72b-4c80-b089-c1112989a38c","page_size":[595,841],"block_position":"103-2"},{"bbox":[88,295,366,321],"type":"text","angle":0,"index":3,"text":"九曲闲","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":103,"id":"a5866ef1-99d8-4636-a7f0-d8564685f7fa","page_size":[595,841],"block_position":"103-3"},{"bbox":[120,325,357,420],"index":4,"angle":0,"type":"image","img_path":"/c340e7d0e17bfff1f393c49f123348edeeb66527cd16927c864cef59cf893946.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3983193277310924,"page_idx":103,"id":"ef2aef52-8657-4659-8d14-304c57b26466","page_size":[595,841],"block_position":"103-4"},{"bbox":[117,432,352,455],"type":"text","angle":0,"index":5,"text":"链接计数、存取时间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":103,"id":"a9e0e20e-5f21-4663-9efb-e87405a33942","page_size":[595,841],"block_position":"103-5"},{"bbox":[87,484,161,497],"type":"title","angle":0,"index":6,"text":"# 文件控制块FCB","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":103,"id":"4406d957-d40b-4130-a8f6-9fa74772f0bb","page_size":[595,841],"block_position":"103-6"},{"bbox":[320,500,374,518],"type":"title","angle":0,"index":8,"text":"# 九曲阑干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":103,"id":"342bf1a4-3a3a-4d4f-8ab8-a9dc71646f6e","page_size":[595,841],"block_position":"103-7"},{"bbox":[89,527,375,560],"type":"text","angle":0,"index":9,"text":"文件和文件控制块一一对应，文件控制块的有序集合称为文件目录有的书中提到一个文件控制块是一个文件目录项","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":103,"id":"0abe7d7c-f59b-441d-af0d-13d0cb60bd13","page_size":[595,841],"block_position":"103-8"},{"bbox":[92,566,218,579],"type":"text","angle":0,"index":10,"text":"FCB通常包括以下三类信息：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":103,"id":"1bae225f-bf65-4703-99b6-19413a0e6927","page_size":[595,841],"block_position":"103-9"},{"bbox":[91,586,286,597],"type":"text","angle":0,"index":11,"text":"·基本信息，例如文件名、文件的物理位置等","id":"3ed0def5-e22b-42a6-a6b9-07b64ef73d65","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":103,"page_size":[595,841],"block_position":"103-10"},{"bbox":[91,608,267,619],"type":"text","angle":0,"index":12,"text":"·存取控制信息，指的是文件的存取权限","id":"1963a703-74e3-4f5a-8a13-f933331b8136","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":103,"page_size":[595,841],"block_position":"103-11"},{"bbox":[91,633,296,645],"type":"text","angle":0,"index":13,"text":"·使用信息，例如文件的建立时间、修改时间等","id":"d17b1fbd-7588-443f-af72-b76a6c0c344a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":103,"page_size":[595,841],"block_position":"103-12"}],[{"bbox":[88,75,494,344],"index":0,"angle":0,"type":"image","img_path":"/beb79d86c95619c9efb114613c661d2669cea30cd98108afd462b6a4a3073429.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6823529411764706,"page_idx":104,"id":"cd6eba71-9a4f-49ab-86a3-4b5803179e16","page_size":[595,841],"block_position":"104-0"},{"bbox":[86,359,435,374],"type":"text","angle":0,"index":1,"text":"FCB 的有序集合称为文件目录（目录文件），一个 FCB 就是一个文件目录项","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":104,"id":"c54d737d-00b5-4b79-844f-baafea98f4c4","page_size":[595,841],"block_position":"104-1"},{"bbox":[87,374,257,388],"type":"text","angle":0,"index":2,"text":"目录文件中的一条记录就是一个 FCB","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":104,"id":"fe8f17cc-88a6-48dd-bca9-57362ae7aba9","page_size":[595,841],"block_position":"104-2"},{"bbox":[88,389,175,404],"type":"text","angle":0,"index":3,"text":"也叫做文件控制块","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":104,"id":"a6baea46-5dbe-4dcc-986c-810e1dc388e4","page_size":[595,841],"block_position":"104-3"},{"bbox":[87,424,187,443],"type":"title","angle":0,"index":4,"text":"# 单级目录结构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":104,"id":"6de0bd41-96e2-4594-8ee2-bf63b4d77310","page_size":[595,841],"block_position":"104-4"},{"bbox":[130,497,360,709],"index":5,"angle":0,"type":"image","img_path":"/6269c7f47662629eef60421179541bd062e53e3f74a0a0fe4d5f5f6aa0ccb4e2.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3865546218487395,"page_idx":104,"id":"512e12f1-1ecd-4adc-b609-d048fcff478d","page_size":[595,841],"block_position":"104-5"},{"bbox":[421,551,595,600],"type":"text","angle":0,"index":7,"text":"在创建一个文件时，需要先文件，确定不重名后才能允对应的目录项插入目录表中。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":104,"id":"a367b833-14ce-406c-81e5-b0d83d8a0653","page_size":[595,841],"block_position":"104-6"}],[{"bbox":[88,84,186,103],"type":"title","angle":0,"index":0,"text":"# 两级目录结构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":105,"id":"4b00d568-a26a-4fe6-80de-84dba12ba6d9","page_size":[595,841],"block_position":"105-0"},{"bbox":[88,140,165,153],"type":"text","angle":0,"index":1,"text":"MFD 主文件目录","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":105,"id":"11c8028b-b516-4e28-a73d-445ef967e278","page_size":[595,841],"block_position":"105-1"},{"bbox":[88,156,173,168],"type":"text","angle":0,"index":2,"text":"UFD 用户文件目录","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":105,"id":"78fee582-d564-453e-89f0-e5764f26b316","page_size":[595,841],"block_position":"105-2"},{"bbox":[91,168,458,330],"index":3,"angle":0,"type":"image","img_path":"/946d22b9086a04f7acb2900659ce77455de57a8a18708e85754a9353486f4fdb.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6168067226890757,"page_idx":105,"id":"1201046c-99eb-4f82-bd17-01177484abda","page_size":[595,841],"block_position":"105-3"},{"bbox":[88,360,265,379],"type":"title","angle":0,"index":4,"text":"# 多级目录，又称树形目录","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":105,"id":"5cbb4aca-e59c-416b-baa0-ac5e4d5675da","page_size":[595,841],"block_position":"105-4"},{"bbox":[87,416,405,444],"type":"text","angle":0,"index":5,"text":"要访问某个文件时要用文件路径名标识文件，文件路径名是个字符串无环图目录结构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":105,"id":"a18beff8-4800-4f8a-af48-c06ac35431b5","page_size":[595,841],"block_position":"105-5"},{"bbox":[88,444,482,593],"index":6,"angle":0,"type":"image","img_path":"/8665ab96752d9ac70ef91a5c98199e200d9ebac92a360b58f55148478560532f.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6621848739495798,"page_idx":105,"id":"edc03408-88b5-49b6-89c7-ae7f09a91794","page_size":[595,841],"block_position":"105-6"},{"bbox":[108,596,462,653],"type":"text","angle":0,"index":7,"text":"点的请求时，只是删除该用户的FCB、并使共享计数器减1，并不会直接删除共享结点。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":105,"id":"a05751ed-7436-46fe-9654-1bfa76ba49a1","page_size":[595,841],"block_position":"105-7"},{"bbox":[389,651,477,661],"type":"text","angle":0,"index":8,"text":"王道考研/CSKAOYAN.COM","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":105,"id":"a672ace7-88e4-4e24-bf17-c03309d73754","page_size":[595,841],"block_position":"105-8"}],[{"bbox":[88,84,154,103],"type":"title","angle":0,"index":0,"text":"# 索引节点","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":106,"id":"137ff19b-178c-4e68-8b82-70578f8698f5","page_size":[595,841],"block_position":"106-0"},{"bbox":[353,146,409,166],"type":"title","angle":0,"index":2,"text":"# 加曲闲干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":106,"id":"3080abc1-f39e-47f8-b2e4-cfb4d8b0c516","page_size":[595,841],"block_position":"106-1"},{"bbox":[108,175,308,190],"type":"text","angle":0,"index":3,"text":"文件目录也是一种文件，需要存放在磁盘上","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"c0884e63-7cd5-469a-a03d-33a5dbea2191","page_size":[595,841],"block_position":"106-2"},{"bbox":[110,196,308,210],"type":"text","angle":0,"index":4,"text":"当文件很多时，文件目录要占用大量的盘块","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"92467093-f773-4f0b-a63c-e6221e0015a6","page_size":[595,841],"block_position":"106-3"},{"bbox":[110,217,400,231],"type":"text","angle":0,"index":5,"text":"在检索目录文件的时候，需要将目录调入内存，然后比较文件名","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"f4d57a1b-3829-4fac-a739-3df6c2d9d902","page_size":[595,841],"block_position":"106-4"},{"bbox":[110,237,329,249],"type":"text","angle":0,"index":6,"text":"但是只是用到文件名，而不需要其他的文件信息","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"eba278a7-acef-4581-9f7d-0c15056e75b8","page_size":[595,841],"block_position":"106-5"},{"bbox":[110,257,399,269],"type":"text","angle":0,"index":7,"text":"文件名和文件信息分来，将文件描述信息单独存放在索引节点中","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"e69b73e9-99dc-4d30-8d7d-716ea376885a","page_size":[595,841],"block_position":"106-6"},{"bbox":[110,279,232,291],"type":"text","angle":0,"index":8,"text":"FCB $\\underline { { \\underline { { \\mathbf { \\delta \\pi } } } } }$ 文件名 $^ +$","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"6355f59b-bd88-439e-abea-4c23bf832fe4","page_size":[595,841],"block_position":"106-7"},{"bbox":[88,312,104,328],"index":9,"angle":0,"type":"image","img_path":"/84c33a35183e6e6408781373416a6c445c81959a112184cb176fe1ae852997bc.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":106,"id":"01527ca0-86c1-4442-b78e-8b56c3e3f2db","page_size":[595,841],"block_position":"106-8"},{"bbox":[107,344,213,428],"index":12,"angle":0,"type":"table_body","img_path":"/","id":"ea1bb6ed-e9f4-4589-bef5-ab19920d6cd6","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>文件名</td><td>索引结点指针</td></tr><tr><td>qianlong</td><td></td></tr><tr><td>QMDownLoad</td><td></td></tr><tr><td>......</td><td></td></tr><tr><td>照片</td><td></td></tr><tr><td>......</td><td></td></tr><tr><td>对账单4.txt</td><td></td></tr></table>","page_idx":106,"page_size":[595,841],"block_position":"106-9"},{"bbox":[340,327,387,337],"type":"text","angle":0,"index":14,"text":"思考有何好处？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"826a3e6b-02ad-4a23-8dbe-9aa93a15e236","page_size":[595,841],"block_position":"106-10"},{"bbox":[339,338,445,347],"type":"text","angle":0,"index":15,"text":"假设一个FCB是64B，磁盘块的大","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"c6faa2b9-a87c-4f40-ad6a-a853ae41b430","page_size":[595,841],"block_position":"106-11"},{"bbox":[340,348,445,356],"type":"text","angle":0,"index":16,"text":"小为1KB，则每个盘块中只能存放","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"f4d016f7-1135-4969-aa05-e9f47c49e1af","page_size":[595,841],"block_position":"106-12"},{"bbox":[340,356,445,365],"type":"text","angle":0,"index":17,"text":"16个FCB。若一个文件目录中共有","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"eb071aba-f6bf-47d7-8dbe-f1ce341b4bfa","page_size":[595,841],"block_position":"106-13"},{"bbox":[340,365,430,373],"type":"text","angle":0,"index":18,"text":"640个目录项，则共需要占用","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"139e1b59-9dce-46e8-adbd-953db446a6dd","page_size":[595,841],"block_position":"106-14"},{"bbox":[340,373,442,381],"type":"text","angle":0,"index":19,"text":"640/16=40个盘块。因此按照某","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"b40f1ef6-a296-4dbd-97f0-283d7a4301c7","page_size":[595,841],"block_position":"106-15"},{"bbox":[340,381,442,390],"type":"text","angle":0,"index":20,"text":"文件名检索该目录，平均需要查","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"e19e2700-2180-4843-b6a5-a699fd89c4f0","page_size":[595,841],"block_position":"106-16"},{"bbox":[240,409,440,427],"type":"text","angle":0,"index":23,"text":"若使用索引结点机制，文件名占14B，索引结点指针站2B，则每个盘块可存放64个目录项，那么按文件名检索目录平均只需要","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"c035782b-7bc2-4a28-a969-997215afaf5b","page_size":[595,841],"block_position":"106-17"},{"bbox":[241,428,437,436],"type":"text","angle":0,"index":24,"text":"读入320/64 $= 5$","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"ab3ff345-56db-4a7d-80ce-a3df997dfc46","page_size":[595,841],"block_position":"106-18"},{"bbox":[111,444,436,461],"type":"text","angle":0,"index":25,"text":"文件在外存中的存放位置，根据“存放位置”即可找到文件。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":106,"id":"e30e462b-a595-4b33-9fb2-a35c5579f738","page_size":[595,841],"block_position":"106-19"}],[{"bbox":[93,85,167,105],"type":"title","angle":0,"index":1,"text":"# 文件操作","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":107,"id":"37517c08-082e-48ec-86fc-ed4bb058946e","page_size":[595,841],"block_position":"107-0"},{"bbox":[352,85,409,105],"type":"title","angle":0,"index":2,"text":"# 九曲阑干","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":107,"id":"f3935556-854e-4560-a2f0-aa6e26b86a39","page_size":[595,841],"block_position":"107-1"},{"bbox":[95,113,289,131],"type":"text","angle":0,"index":3,"text":"","id":"42dc0d57-962f-4c75-8437-cf95baa45719","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"page_size":[595,841],"block_position":"107-2"},{"bbox":[307,111,393,143],"type":"text","angle":0,"index":4,"text":"","id":"7ebdea2b-020e-4c2c-84c5-c770b7ee3293","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"page_size":[595,841],"block_position":"107-3"},{"bbox":[96,144,185,162],"type":"text","angle":0,"index":5,"text":"","id":"a2ebaf08-f261-42b4-adc0-873330d6422f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"page_size":[595,841],"block_position":"107-4"},{"bbox":[314,153,395,216],"type":"text","angle":0,"index":6,"text":"设备","id":"d1c42f3b-83f7-453e-af2b-38c2180b82fc","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"page_size":[595,841],"block_position":"107-5"},{"bbox":[96,172,193,188],"type":"text","angle":0,"index":7,"text":"","id":"1d2817a3-bcad-4134-9dbc-bf44558158f2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"page_size":[595,841],"block_position":"107-6"},{"bbox":[96,203,211,219],"type":"text","angle":0,"index":8,"text":"","id":"40c667f0-8127-4add-b0af-306f24a0b0d6","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"page_size":[595,841],"block_position":"107-7"},{"bbox":[95,235,222,252],"type":"text","angle":0,"index":9,"text":"","id":"285f9694-1a0f-4e60-a38f-8e2c87199e77","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"page_size":[595,841],"block_position":"107-8"},{"bbox":[88,296,132,309],"type":"title","angle":0,"index":11,"text":"# 创建文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":107,"id":"d23ce58a-a560-43e2-8d52-1694a0aa1ceb","page_size":[595,841],"block_position":"107-9"},{"bbox":[103,309,402,322],"type":"text","angle":0,"index":12,"text":"创建文件 四闲1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"id":"1a81b212-baf1-4eb7-b0c6-89a56f7fff50","page_size":[595,841],"block_position":"107-10"},{"bbox":[103,323,380,352],"type":"text","angle":0,"index":13,"text":"创建一个文件，可以通过系统调用open实现Creat","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"id":"e7a7ef3d-e3a3-4982-b8fd-4bfb04f68695","page_size":[595,841],"block_position":"107-11"},{"bbox":[103,354,393,368],"type":"text","angle":0,"index":14,"text":"$=$","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"id":"0724c8d8-b76f-47bf-a1b0-cf2d6a7e8cbd","page_size":[595,841],"block_position":"107-12"},{"bbox":[103,375,394,390],"type":"text","angle":0,"index":15,"text":"系统调用open返回值","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"id":"505af522-e350-4777-9a15-e301ecd580b3","page_size":[595,841],"block_position":"107-13"},{"bbox":[103,401,307,414],"type":"text","angle":0,"index":16,"text":"·文件描述符是一个整数，是每个进程私有的","id":"84298c95-4765-4026-8be3-f2b99d05e790","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"page_size":[595,841],"block_position":"107-14"},{"bbox":[103,420,347,433],"type":"text","angle":0,"index":17,"text":"·文件描述符可以理解为一种权限，允许执行某些操作","id":"080231b2-29b1-4b52-b1db-b69d8e6d1ae6","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"page_size":[595,841],"block_position":"107-15"},{"bbox":[104,438,308,450],"type":"text","angle":0,"index":18,"text":"·将文件描述符看成指向文件类型对象的指针","id":"130fdd33-8351-451b-9f3d-a752628fae7c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"page_size":[595,841],"block_position":"107-16"},{"bbox":[104,454,339,467],"type":"text","angle":0,"index":19,"text":"·每一个进程通过一个文件描述符表记录打开的文件","id":"ab17256d-f76c-47c0-ab8b-1e4589c7d5b6","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"page_size":[595,841],"block_position":"107-17"},{"bbox":[103,498,334,516],"type":"title","angle":0,"index":21,"text":"# 对文件的读写通过文件描述符来访问","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":107,"id":"84abd6d8-cf5d-4042-a224-81049fc69e23","page_size":[595,841],"block_position":"107-18"},{"bbox":[104,634,365,650],"type":"text","angle":0,"index":26,"text":"关闭后，该文件描述符从文件描述符表中删除","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":107,"id":"1bbcf595-2727-4582-9d7a-1ad5c54071e1","page_size":[595,841],"block_position":"107-19"}],[{"bbox":[88,84,362,103],"type":"title","angle":0,"index":0,"text":"# 目录文件—— 文件夹，目录文件的位置","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":108,"id":"7fb0bdb8-d69a-4357-bf12-4a955ce0a18a","page_size":[595,841],"block_position":"108-0"},{"bbox":[95,175,429,239],"type":"text","angle":0,"index":1,"text":"文件系统通常使用目录(文件夹）记录文件的位置每个文件名称为目录项，每个名字到inode的映射称为链接","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":108,"id":"29e5e28b-1bfd-4e2f-ab7a-29232eee6a9a","page_size":[595,841],"block_position":"108-1"},{"bbox":[115,253,376,311],"index":2,"angle":0,"type":"code","text":"```c\nstruct dirent {\n    ino_t d_ino; /* inode number */\n    char d_name[256]; /* Filename */\n};\n```","id":"c7c2e1e5-c838-45b0-9dc9-4cc52d17749c","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":108,"page_size":[595,841],"block_position":"108-2"},{"bbox":[86,358,190,401],"type":"text","angle":0,"index":3,"text":"指向一个索引节点$\\mathsf { F C B } =$ 文件名 $^ +$ 索引编号文件目录结构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":108,"id":"0cb649a1-5b93-4d1d-8110-32d55fae04f0","page_size":[595,841],"block_position":"108-3"},{"bbox":[88,403,566,611],"index":4,"angle":0,"type":"image","img_path":"/487ea92a3b1e8c07d01c474dca56fc312f5678cdde08fc2a5d29068bd3694f5e.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.8033613445378152,"page_idx":108,"id":"81490a71-a7e5-48ac-978f-4c40d718cdba","page_size":[595,841],"block_position":"108-4"},{"bbox":[95,625,150,641],"type":"text","angle":0,"index":5,"text":"","id":"88f72089-5c72-430a-90e4-cb2b32028e20","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":108,"page_size":[595,841],"block_position":"108-5"},{"bbox":[97,651,149,666],"type":"text","angle":0,"index":6,"text":"","id":"dada30cc-e34d-4721-aa18-3502d0884f00","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":108,"page_size":[595,841],"block_position":"108-6"},{"bbox":[98,677,204,689],"type":"text","angle":0,"index":7,"text":"","id":"086aab09-ff84-42d0-b94d-8bd727f5fdb0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":108,"page_size":[595,841],"block_position":"108-7"},{"bbox":[97,703,149,715],"type":"text","angle":0,"index":8,"text":"","id":"044812f5-d6a0-40cf-af3c-f8a085313cf5","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":108,"page_size":[595,841],"block_position":"108-8"}],[{"bbox":[86,81,318,98],"type":"text","angle":0,"index":0,"text":"目录中每个名字到索引节点的映射称为链接","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":109,"id":"c106e887-26af-4609-a9e6-c7843a2e23c4","page_size":[595,841],"block_position":"109-0"},{"bbox":[86,106,386,121],"type":"text","angle":0,"index":1,"text":"链接的本质就是目录中一个指向索引节点(inode)的名字","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":109,"id":"53962ce0-35c0-454f-a849-760f82754240","page_size":[595,841],"block_position":"109-1"},{"bbox":[86,131,402,147],"type":"text","angle":0,"index":2,"text":"所有的链接中，没有一个链接是“原始”或者“初始”状态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":109,"id":"c31767de-c6a3-4549-8c42-161ba528d2eb","page_size":[595,841],"block_position":"109-2"},{"bbox":[91,242,404,260],"type":"text","angle":0,"index":6,"text":"知识回顾：索引结点，是一种文件目录瘦身策略。由于检索文件时只需用到文件名，因此可以将除了文件名之外的其他信息放到索引结点中。这样目录项就只需要包含文件名、索引结点指针。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":109,"id":"f2b5a34e-f599-410f-b415-14140794ca28","page_size":[595,841],"block_position":"109-3"},{"bbox":[88,270,229,353],"index":7,"angle":0,"type":"image","img_path":"/166de816abc717e1a52d850f68a1396621d596fc9dff96aad483b019fb5d90f6.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.23697478991596638,"page_idx":109,"id":"6d0a1a2a-a862-4e49-926c-8154cd5b11f3","page_size":[595,841],"block_position":"109-4"},{"bbox":[273,268,402,317],"index":8,"angle":0,"type":"image","img_path":"/40703cd8300a3524f7a7b50221a5a394c5eadd4eca0df4815032768fa53466c4.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.21680672268907564,"page_idx":109,"id":"0317a193-ce44-466d-abc1-ee2475a2a50a","page_size":[595,841],"block_position":"109-5"},{"bbox":[86,359,369,368],"type":"text","angle":0,"index":9,"text":"索引结点中设置一个链接计数变量count，用于表示链接到本索引结点上的用户目录项数。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":109,"id":"1b766c60-3312-44b4-b330-1790761c2b88","page_size":[595,841],"block_position":"109-6"},{"bbox":[86,368,404,393],"type":"text","angle":0,"index":10,"text":"若count $= 2$ ，说明此时有两个用户目录项链接到该索引结点上，或者说是有两个用户在共享此文件。若某个用户决定“删除”该文件，则只是要把用户目录中与该文件对应的目录项删除，且索引结点的count值减1。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":109,"id":"9a2caeab-d966-4147-b78e-54caa5aee751","page_size":[595,841],"block_position":"109-7"},{"bbox":[86,393,391,403],"type":"text","angle":0,"index":11,"text":"若count>0，说明还有别的用户要使用该文件，暂时不能把文件数据删除，否则会导致指针悬空。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":109,"id":"1ad53c79-720b-4b70-b646-ac9bcae3fa25","page_size":[595,841],"block_position":"109-8"},{"bbox":[86,403,195,412],"type":"text","angle":0,"index":12,"text":"当count=0时系统负责删除文件。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":109,"id":"d2668806-ee2b-41fa-aeb1-5715fab02cc9","page_size":[595,841],"block_position":"109-9"},{"bbox":[87,422,164,434],"type":"title","angle":0,"index":14,"text":"# 同一个索引节点","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":109,"id":"44c63ce5-84bb-4715-a86b-42e533a1ebdc","page_size":[595,841],"block_position":"109-10"},{"bbox":[87,470,154,489],"type":"title","angle":0,"index":15,"text":"# 共享文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":109,"id":"41fab6b0-59d2-4be4-a4a1-386bfb4fe87f","page_size":[595,841],"block_position":"109-11"},{"bbox":[86,527,192,539],"type":"text","angle":0,"index":16,"text":"Copy和硬链接的区别？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":109,"id":"ae669586-b38b-41e5-a37d-bc287e2f0ee9","page_size":[595,841],"block_position":"109-12"},{"bbox":[86,543,145,555],"type":"text","angle":0,"index":17,"text":"Copy 是两份","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":109,"id":"98f794b8-c6f3-4508-a260-112b9a6266f3","page_size":[595,841],"block_position":"109-13"},{"bbox":[86,558,268,571],"type":"text","angle":0,"index":18,"text":"硬链接只有一份，映射了同一索引节点","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":109,"id":"aba85800-b56e-43f8-ab1f-2c3e1d126557","page_size":[595,841],"block_position":"109-14"},{"bbox":[86,573,179,586],"type":"text","angle":0,"index":19,"text":"软链接（符号链接）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":109,"id":"b3c51189-4a6a-4dea-ae8d-7f8f63121293","page_size":[595,841],"block_position":"109-15"},{"bbox":[362,590,380,614],"index":21,"angle":0,"type":"image","img_path":"/fd946b48f5b1efee862c2bf42bb729c604c262ecb473632611822ec92631fbfb.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":109,"id":"7bf0b28c-de2f-4690-a372-6e21710e9a3e","page_size":[595,841],"block_position":"109-16"},{"bbox":[87,698,132,711],"type":"title","angle":0,"index":24,"text":"# 快捷方式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":109,"id":"2cef1e0a-2382-48c8-ab0e-d5017283c77e","page_size":[595,841],"block_position":"109-17"}],[{"bbox":[94,74,192,88],"type":"title","angle":0,"index":0,"text":"# 当前工作日求","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":110,"id":"42898e8e-df58-48e1-9e40-377f7aff81df","page_size":[595,841],"block_position":"110-0"},{"bbox":[93,99,394,115],"type":"text","angle":0,"index":2,"text":"每个进程都有一个当前目录一般是创建时从父进程继承的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":110,"id":"188fe98e-8449-4375-9ef8-607c1a2b4f17","page_size":[595,841],"block_position":"110-1"},{"bbox":[94,121,348,136],"type":"text","angle":0,"index":3,"text":"内核解析相对路径时，会把当前工作目录作为起点","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":110,"id":"252cffb2-600f-41a1-857d-04044ab64123","page_size":[595,841],"block_position":"110-2"},{"bbox":[94,142,291,157],"type":"text","angle":0,"index":4,"text":"获得当前工作目录使用系统调用getcwd","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":110,"id":"93007429-0b44-4ea1-a2f9-44de2efcc21e","page_size":[595,841],"block_position":"110-3"},{"bbox":[93,165,299,177],"index":5,"angle":0,"type":"code","text":"```txt\nchar *getcwd(char *buf, size_t size);\n```","id":"08f55f09-0065-4d1b-bf00-20d4558d8ecf","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":110,"page_size":[595,841],"block_position":"110-4"},{"bbox":[94,187,220,200],"type":"text","angle":0,"index":6,"text":"当前工作目录也可以修改","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":110,"id":"52166d4c-2567-4ef8-a8b6-baeb70423322","page_size":[595,841],"block_position":"110-5"},{"bbox":[98,248,447,405],"index":7,"angle":0,"type":"image","img_path":"/cd074b8c1b12f950507859590f3d24e850eb4026d208c9a5470bdea6a6b1a95a.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5865546218487395,"page_idx":110,"id":"6461f4d1-b28c-489a-a8c9-fa9d82db6747","page_size":[595,841],"block_position":"110-6"},{"bbox":[101,414,448,436],"type":"text","angle":0,"index":8,"text":"当User3访问“ccc”时，操作系统判断文件“ccc”属于Link类型文件，于是会根据其中记录的路径层层查找目录，最终找到User1的目录表中的“aaa”表项，于是就找到了文件1的索引结点。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":110,"id":"31c09c7a-1deb-4013-a79e-198059c0756b","page_size":[595,841],"block_position":"110-7"},{"bbox":[87,470,187,490],"type":"title","angle":0,"index":10,"text":"# 存储空间管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":110,"id":"10629bdd-9eb1-4fca-9e38-7a246d9d4844","page_size":[595,841],"block_position":"110-8"}],[{"bbox":[113,84,327,116],"type":"header","angle":0,"index":-99998,"text":"文伴长","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":111,"is_discarded":true,"id":"aa5e4cc7-58c7-40d5-aa57-7bd737454ab7","page_size":[595,841],"block_position":"111-0"},{"bbox":[428,84,501,109],"type":"header","angle":0,"index":-99997,"text":"九曲阑干","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":111,"is_discarded":true,"id":"fdcf99f9-ea72-4ffc-a712-0c2158c3eac5","page_size":[595,841],"block_position":"111-1"},{"bbox":[112,123,503,188],"type":"text","angle":0,"index":3,"text":"为了追踪空闲的磁盘空间，系统需要维护一个空闲空间链表空闲空间链表记录了所有的空闲磁盘空间，也就是没有分配给文件和目录的空间","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"id":"f815d52d-e56e-4b71-b455-b2f13dc4f439","page_size":[595,841],"block_position":"111-2"},{"bbox":[115,199,188,216],"type":"text","angle":0,"index":4,"text":"","id":"20a80330-60db-4010-a996-59b4e29756c7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"page_size":[595,841],"block_position":"111-3"},{"bbox":[116,227,202,243],"type":"text","angle":0,"index":5,"text":"","id":"4b7dbb07-8db2-4f26-8b45-c8b3e693bc97","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"page_size":[595,841],"block_position":"111-4"},{"bbox":[116,254,173,270],"type":"text","angle":0,"index":6,"text":"","id":"f01fe87a-b7a8-4563-b5ab-25a8dbe4c2ad","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"page_size":[595,841],"block_position":"111-5"},{"bbox":[116,280,202,296],"type":"text","angle":0,"index":7,"text":"","id":"68f9501e-7839-4a8b-9270-4e93b3ad7769","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"page_size":[595,841],"block_position":"111-6"},{"bbox":[88,346,156,365],"type":"title","angle":0,"index":9,"text":"# 设备管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":111,"id":"28ea0fcc-9b0b-4389-bf3c-ea556169fb5c","page_size":[595,841],"block_position":"111-7"},{"bbox":[88,435,170,454],"type":"title","angle":0,"index":10,"text":"# 设备的分类","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":111,"id":"57df5635-5bc8-4202-b2d3-3f099ec08590","page_size":[595,841],"block_position":"111-8"},{"bbox":[88,491,182,504],"type":"text","angle":0,"index":11,"text":"1、按数据传输速率","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"id":"11f7f308-7837-4b8a-8bb5-0ce620fb0588","page_size":[595,841],"block_position":"111-9"},{"bbox":[105,507,192,519],"type":"text","angle":0,"index":12,"text":"低速：鼠标、键盘","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"id":"c46aea59-ca84-4369-a8f4-f412be90499c","page_size":[595,841],"block_position":"111-10"},{"bbox":[105,523,213,535],"type":"text","angle":0,"index":13,"text":"中速：打印机、扫描仪","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"id":"1b0a9d43-7d56-4add-9a71-cb29f8579929","page_size":[595,841],"block_position":"111-11"},{"bbox":[105,539,160,551],"type":"text","angle":0,"index":14,"text":"高速：磁盘","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"id":"ead511db-4858-4aa1-8bea-0734fa9d75e5","page_size":[595,841],"block_position":"111-12"},{"bbox":[87,570,182,581],"type":"text","angle":0,"index":15,"text":"2、按信息交换单位","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"id":"71590974-7894-4e44-b96a-7e9291392c06","page_size":[595,841],"block_position":"111-13"},{"bbox":[105,585,205,597],"type":"text","angle":0,"index":16,"text":"块设备：磁盘 可寻址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"id":"2e5587fe-6968-46e4-9903-3ba67ab5658d","page_size":[595,841],"block_position":"111-14"},{"bbox":[105,601,302,613],"type":"text","angle":0,"index":17,"text":"字符设备：不可寻址 中断驱动 交互式终端","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"id":"fff7c359-c0f2-4a5d-8342-528b67f4d09c","page_size":[595,841],"block_position":"111-15"},{"bbox":[87,616,182,629],"type":"text","angle":0,"index":18,"text":"3、按设备共享属性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"id":"00c8e243-b8fc-4453-b695-558cea35a181","page_size":[595,841],"block_position":"111-16"},{"bbox":[87,632,160,645],"type":"text","angle":0,"index":19,"text":"4、按工作特性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"id":"4ff8b726-8e3d-4b06-88d5-5925b8568840","page_size":[595,841],"block_position":"111-17"},{"bbox":[105,648,149,660],"type":"text","angle":0,"index":20,"text":"存储设备","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"id":"1fd49f9d-ed83-47c6-96d1-63f2cd6ce095","page_size":[595,841],"block_position":"111-18"},{"bbox":[108,664,147,676],"type":"text","angle":0,"index":21,"text":"I/O 设备","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"id":"a3c925dd-ba03-4a7c-b308-51dcee9dc6fc","page_size":[595,841],"block_position":"111-19"},{"bbox":[105,679,170,692],"type":"text","angle":0,"index":22,"text":"网络通信设备","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":111,"id":"650e100e-1dd0-4f1d-b327-9b443460f18b","page_size":[595,841],"block_position":"111-20"}],[{"bbox":[88,84,250,103],"type":"title","angle":0,"index":0,"text":"# I/O 控制器/设备控制器","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":112,"id":"b08e46a6-c660-41c5-b104-3932f7ccb362","page_size":[595,841],"block_position":"112-0"},{"bbox":[105,139,181,153],"type":"text","angle":0,"index":1,"text":"接受和识别命令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":112,"id":"3962c98f-2f35-4e2f-bd01-413803270b2d","page_size":[595,841],"block_position":"112-1"},{"bbox":[106,155,150,168],"type":"text","angle":0,"index":2,"text":"数据交换","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":112,"id":"5b8ebcee-e2fa-4806-a5f2-152cdfc9791c","page_size":[595,841],"block_position":"112-2"},{"bbox":[106,171,149,184],"type":"text","angle":0,"index":3,"text":"地址识别","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":112,"id":"b1d13b70-f1e0-4312-9a56-9b1c6c5a43b9","page_size":[595,841],"block_position":"112-3"},{"bbox":[106,186,149,199],"type":"text","angle":0,"index":4,"text":"数据缓冲","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":112,"id":"3b20e77e-dd4e-4f2e-9c99-438db9bd96f0","page_size":[595,841],"block_position":"112-4"},{"bbox":[106,201,202,215],"type":"text","angle":0,"index":5,"text":"识别和报告设备状态","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":112,"id":"9d43f1a0-0588-417c-92f1-8b972dc09c86","page_size":[595,841],"block_position":"112-5"},{"bbox":[107,218,149,230],"type":"text","angle":0,"index":6,"text":"差错控制","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":112,"id":"970e2196-93a9-4194-a997-422a8fd4200e","page_size":[595,841],"block_position":"112-6"},{"bbox":[105,232,511,470],"index":7,"angle":0,"type":"image","img_path":"/143ee3de398a9c2cbf0e7359815a65f1b8465f14a6e9d6b43f848bffbf3df9c7.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6823529411764706,"page_idx":112,"id":"0f3611c3-db03-4fec-a948-deb91c1453b6","page_size":[595,841],"block_position":"112-7"},{"bbox":[106,498,290,511],"type":"title","angle":0,"index":8,"text":"# 1、 一个 I/O 控制器可能会对应多个设备","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":112,"id":"ebe24c55-a496-4b2a-b562-dd375e0670e4","page_size":[595,841],"block_position":"112-8"},{"bbox":[106,514,261,526],"type":"title","angle":0,"index":9,"text":"# 2、内存映像I/O/寄存器独立编址","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":112,"id":"5d8fd81d-3abb-41a8-b3df-6b41e60d4001","page_size":[595,841],"block_position":"112-9"},{"bbox":[97,527,362,666],"index":10,"angle":0,"type":"image","img_path":"/603ee7df80b4fe2bbccba8ff7c5b22bb3472cde0f1dc580a0c8726893375bae3.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.44537815126050423,"page_idx":112,"id":"ab490ef9-32ba-4e86-b555-602a5142b02d","page_size":[595,841],"block_position":"112-10"}],[{"bbox":[88,84,180,103],"type":"title","angle":0,"index":0,"text":"# I/O 控制方式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":113,"id":"37389cb4-731f-447b-a74b-e4ab37d7e97c","page_size":[595,841],"block_position":"113-0"},{"bbox":[87,139,172,152],"type":"text","angle":0,"index":1,"text":"1、直接控制方式","id":"f3e99d53-b862-4a1c-a07f-53e7c2a00084","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":113,"page_size":[595,841],"block_position":"113-1"},{"bbox":[87,155,193,168],"type":"text","angle":0,"index":2,"text":"2、中断驱动控制方式","id":"c61449db-1730-4f07-b9f5-5667757ba7d1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":113,"page_size":[595,841],"block_position":"113-2"},{"bbox":[88,171,182,184],"type":"text","angle":0,"index":3,"text":"3、 直接存储器存取","id":"19d3316e-9b11-4207-a0f9-b18495f54694","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":113,"page_size":[595,841],"block_position":"113-3"},{"bbox":[88,206,146,223],"type":"title","angle":0,"index":5,"text":"# 直接控制","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":113,"id":"e15dc471-285e-4ed3-b5e7-88d0c842defd","page_size":[595,841],"block_position":"113-4"},{"bbox":[91,270,486,487],"index":6,"angle":0,"type":"image","img_path":"/4ba93ea783051ba8e6becb9c517d5547b3e00256583bfc811a334011333c9e91.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6638655462184874,"page_idx":113,"id":"39e7a529-51e5-4dc4-8752-a26c0e6cfee3","page_size":[595,841],"block_position":"113-5"},{"bbox":[87,491,210,504],"type":"text","angle":0,"index":7,"text":"1、先经过 CPU，再到内存","id":"94970bfe-7057-4d19-8e73-74d50044db40","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":113,"page_size":[595,841],"block_position":"113-6"},{"bbox":[87,507,178,519],"type":"text","angle":0,"index":8,"text":"2、CPU干预的频率","id":"fea9f7ae-a65c-4864-a994-91591ef08f1d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":113,"page_size":[595,841],"block_position":"113-7"},{"bbox":[88,523,180,534],"type":"text","angle":0,"index":9,"text":"3、每次读写一个字","id":"2603b5bd-01a5-4c36-9e9e-285d877859b5","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":113,"page_size":[595,841],"block_position":"113-8"},{"bbox":[87,538,373,551],"type":"text","angle":0,"index":10,"text":"4、缺点：CPU/I/O 设备只能串行工作，CPU 一直处于轮询状态","id":"1947465c-66c4-4dd5-b0a4-1e81502600e9","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":113,"page_size":[595,841],"block_position":"113-9"}],[{"bbox":[89,73,413,237],"index":0,"angle":0,"type":"image","img_path":"/6b3faf37064d03f0743ea93ab83e3f5cd3479e9c0a30d4e23c0f81f99fcffd03.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5445378151260504,"page_idx":114,"id":"f636f534-46ff-4867-ae3c-bbf791a04245","page_size":[595,841],"block_position":"114-0"},{"bbox":[88,301,174,318],"type":"title","angle":0,"index":1,"text":"# 中断驱动方式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":114,"id":"c17a20e4-6d0d-4ec5-ba9b-a2321429c044","page_size":[595,841],"block_position":"114-1"},{"bbox":[88,368,440,382],"type":"text","angle":0,"index":2,"text":"由于I/O设备速度很慢，可将I/O等待的进程阻塞，现金切换到别的进程执行","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":114,"id":"61e04e2f-3d27-4675-b2c7-1b0c40dc8ed6","page_size":[595,841],"block_position":"114-2"},{"bbox":[99,384,388,544],"index":3,"angle":0,"type":"image","img_path":"/33ebe83923091a8e5117bb3871f33e3af6ac5602834ca1824fc972b1943ce379.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4857142857142857,"page_idx":114,"id":"9275e399-9ec2-4c99-bca6-7bda55030840","page_size":[595,841],"block_position":"114-3"}],[{"bbox":[88,85,154,101],"type":"title","angle":0,"index":0,"text":"# DMA 方式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":115,"id":"dd316928-03d0-4cd6-9a86-20cf88df0179","page_size":[595,841],"block_position":"115-0"},{"bbox":[98,138,444,158],"type":"text","angle":0,"index":1,"text":"与“中断驱动方式”相比，DMA方式（DirectMemoryAccess，直接存储器存取。主要用于块设备的1/O控制）有这样几个改进：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":115,"id":"28cb8e98-4aff-4fde-83b9-8fe76c32fb35","page_size":[595,841],"block_position":"115-1"},{"bbox":[98,158,309,168],"type":"text","angle":0,"index":2,"text":"","id":"e862350b-8a70-4879-8f12-45efa0f216dd","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":115,"page_size":[595,841],"block_position":"115-2"},{"bbox":[98,168,433,178],"type":"text","angle":0,"index":3,"text":"②数据的流向是从设备直接放入内存，或者从内存直接到设备。不再需要CPU作为“快递小哥”。","id":"47501b17-2dbe-47fc-9811-3026a2a6c072","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":115,"page_size":[595,841],"block_position":"115-3"},{"bbox":[99,178,323,187],"type":"text","angle":0,"index":4,"text":"③仅在传送一个或多个数据块的开始和结束时，才需要CPU干预。","id":"2374e942-2918-453b-852c-f39df8c6ce80","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":115,"page_size":[595,841],"block_position":"115-4"},{"bbox":[103,198,431,316],"index":6,"angle":0,"type":"image","img_path":"/097b9269cac00b912c89d878a106a8c979d61463dc902609bb9b85f3faa60750.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5512605042016807,"page_idx":115,"id":"7768b29d-fd8c-45ed-9439-e95ac12bb913","page_size":[595,841],"block_position":"115-5"},{"bbox":[87,338,321,367],"type":"text","angle":0,"index":7,"text":"读取的时候是按字读取，然后放入内存以块为单位仅在数据传送开始和结束时 caixuCPU 干预","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":115,"id":"6d90461f-b0b2-4a59-a788-a640c40b693e","page_size":[595,841],"block_position":"115-6"},{"bbox":[99,383,324,472],"index":8,"angle":0,"type":"image","img_path":"/d325b155f9dacbee21ecbb21b7dae752983351d221280f6e107bd2cea60ed8bc.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.37815126050420167,"page_idx":115,"id":"546c3a5d-5e56-4ba8-976e-3e784d972c05","page_size":[595,841],"block_position":"115-7"},{"bbox":[104,476,282,483],"type":"text","angle":0,"index":9,"text":"DR（DataBegister，数据寄存器）：暂存从设备到内存，或从内存到设备的数据","id":"8c605b39-b749-4af4-b8f6-72a1de64f81b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":115,"page_size":[595,841],"block_position":"115-8"},{"bbox":[104,483,326,488],"type":"text","angle":0,"index":10,"text":"MAB（MemoryAddressBeeister，内存地址寄存器）：在输入时，MAR表示数据应放到内存中的什么","id":"723c7654-e2c4-4cee-8143-ee7626a24db5","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":115,"page_size":[595,841],"block_position":"115-9"},{"bbox":[104,488,240,495],"type":"text","angle":0,"index":11,"text":"位置：输出时MAR表示要输出的数据放在内存中的什么位置。","id":"d4327974-67d6-4a4e-b04e-4c82904298b4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":115,"page_size":[595,841],"block_position":"115-10"},{"bbox":[104,495,244,502],"type":"text","angle":0,"index":12,"text":"DC（DataCounter，数据计数器）：表示剩余要读/写的字节数。","id":"91213d62-16e4-4f37-8ab4-c3041a8cbaa1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":115,"page_size":[595,841],"block_position":"115-11"},{"bbox":[104,502,314,507],"type":"text","angle":0,"index":13,"text":"CR（CommandRegister，命令/状态寄存器）：用于存放CPU发来的I/O命令，或设备的状态信息。","id":"31259e2d-1b0d-45ff-ab2c-27f4da0e5f2e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":115,"page_size":[595,841],"block_position":"115-12"},{"bbox":[87,556,195,569],"type":"text","angle":0,"index":16,"text":"缺点：只能处理离散的","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":115,"id":"6390126c-d182-497a-b97f-124129ef6987","page_size":[595,841],"block_position":"115-13"},{"bbox":[87,608,180,624],"type":"title","angle":0,"index":17,"text":"# 通道控制方式：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":115,"id":"a9433d61-3fd3-4787-b81d-e2f8d8c7f20b","page_size":[595,841],"block_position":"115-14"},{"bbox":[88,658,270,672],"type":"text","angle":0,"index":18,"text":"一种硬件，识别并执行一系列通道指令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":115,"id":"dc1c0b24-2051-4f66-8362-ae18fbbd3500","page_size":[595,841],"block_position":"115-15"}],[{"bbox":[101,161,595,393],"index":2,"angle":0,"type":"image","img_path":"/d3a89001a2c91c4fbf60f097c101261bb546def2400791c4e377a66741a13ca7.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.8302521008403362,"page_idx":116,"id":"433804c9-7841-415a-82ce-de91330c9d48","page_size":[595,841],"block_position":"116-0"},{"bbox":[87,453,186,466],"type":"title","angle":0,"index":3,"text":"# 通道与CPU共享内存","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":116,"id":"65a652a1-4ee1-41b5-bad9-d6e4355e4865","page_size":[595,841],"block_position":"116-1"},{"bbox":[107,525,220,534],"type":"text","angle":0,"index":5,"text":"1.完成一次读/写操作的流程(见右图)","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":116,"id":"a6962243-5720-4742-96f1-f559fadf1d38","page_size":[595,841],"block_position":"116-2"},{"bbox":[232,516,390,533],"type":"text","angle":0,"index":6,"text":"与CPU相比，通道可以执行的指令很单一，并且通道程","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":116,"id":"a294af7b-686b-4f54-9a05-3bfa496406f9","page_size":[595,841],"block_position":"116-3"},{"bbox":[107,541,160,549],"type":"text","angle":0,"index":7,"text":"2.CPU干预的频率","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":116,"id":"184975fb-3e60-42e4-a4d0-5f1f71ea295e","page_size":[595,841],"block_position":"116-4"},{"bbox":[107,550,317,565],"type":"text","angle":0,"index":8,"text":"极低，通道会根据CPU的指示执行相应的通道程序，只有完成一组数据块的读/写后才需要发出中断信号，请求CPU于预。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":116,"id":"f8043431-a8c8-4c51-9612-63b42c48022f","page_size":[595,841],"block_position":"116-5"},{"bbox":[325,541,413,623],"index":9,"angle":0,"type":"image","img_path":"/d4ead7abf439e8d160a05031880a63db63dc2b53e50e191546a4bbe505c8281d.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":116,"id":"805d914e-d137-4f21-a395-481be676c07f","page_size":[595,841],"block_position":"116-6"},{"bbox":[107,573,161,581],"type":"text","angle":0,"index":10,"text":"3.数据传送的单位","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":116,"id":"68586c55-e358-4bef-9d3a-f72bbb9f45ce","page_size":[595,841],"block_position":"116-7"},{"bbox":[107,604,215,612],"type":"text","angle":0,"index":13,"text":"读操作（数据输入）：I/O设备→内存","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":116,"id":"a438e80e-7dff-477d-85d1-ebda46573caa","page_size":[595,841],"block_position":"116-8"},{"bbox":[107,613,215,620],"type":"text","angle":0,"index":14,"text":"写操作（数据输出）：内存→I/O设备","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":116,"id":"9678dee1-2141-4c6c-ab8d-82ff9879fc46","page_size":[595,841],"block_position":"116-9"},{"bbox":[107,628,174,635],"type":"text","angle":0,"index":15,"text":"5.主要缺点和主要优点","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":116,"id":"f326749a-39e5-46c0-abc5-5f59fc17743e","page_size":[595,841],"block_position":"116-10"},{"bbox":[107,636,233,644],"type":"text","angle":0,"index":16,"text":"缺点：实现复杂，需要专门的通道硬件支持","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":116,"id":"e0c36e43-c4c7-48b1-8747-967e0e61c621","page_size":[595,841],"block_position":"116-11"}],[{"bbox":[94,76,431,232],"index":0,"angle":0,"type":"table_body","img_path":"/","id":"9b776e94-ae71-4df4-8f1e-a5513b3d94c7","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td></td><td>完成一次读/写的过程</td><td>CPU干预频率</td><td>每次I/O的数据传输单位</td><td>数据流向</td><td>优缺点</td></tr><tr><td>程序直接控制方式</td><td>CPU发出I/O命令后需要不断轮询</td><td>极高</td><td>字</td><td>设备→CPU→内存内存→CPU→设备</td><td rowspan=\"4\">每一个阶段的优点都是解决了上一阶段的最大缺点。总体来说，整个发展过程就是要尽量减少CPU对I/O过程的干预，把CPU从繁杂的I/O控制事务中解脱出来，以便更多地去完成数据处理任务。</td></tr><tr><td>中断驱动方式</td><td>CPU发出I/O命令后可以做其他事，本次I/O完成后设备控制器发出中断信号</td><td>高</td><td>字</td><td>设备→CPU→内存内存→CPU→设备</td></tr><tr><td>DMA方式</td><td>CPU发出I/O命令后可以做其他事，本次I/O完成后DMA控制器发出中断信号</td><td>中</td><td>块</td><td>设备→内存内存→设备</td></tr><tr><td>通道控制方式</td><td>CPU发出I/O命令后可以做其他事。通道会执行通道程序以完成I/O，完成后通道向CPU发出中断信号</td><td>低</td><td>一组块</td><td>设备→内存内存→设备</td></tr></table>","page_idx":117,"page_size":[595,841],"block_position":"117-0"},{"bbox":[88,315,187,333],"type":"title","angle":0,"index":1,"text":"# 磁盘调度算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":117,"id":"d7f3dc4b-bb40-4939-951a-e853761354e6","page_size":[595,841],"block_position":"117-1"},{"bbox":[88,439,122,452],"type":"title","angle":0,"index":2,"text":"# FCFS","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":117,"id":"ae4c583a-5dbc-4e20-bd0b-2ef902da00c6","page_size":[595,841],"block_position":"117-2"},{"bbox":[94,499,233,507],"type":"text","angle":0,"index":3,"text":"根循进程请求访问磁盈的光后顺序进仃调度。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":117,"id":"740b3b31-0c60-4692-9890-ba533b7b5faf","page_size":[595,841],"block_position":"117-3"},{"bbox":[94,513,391,523],"type":"text","angle":0,"index":4,"text":"假设磁头的初始位置是100号磁道，有多个进程先后陆续地请求访间55、58、39、18、90、160、","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":117,"id":"65d88a02-dc05-49ca-bc74-346433285cfa","page_size":[595,841],"block_position":"117-4"},{"bbox":[95,523,162,531],"type":"text","angle":0,"index":5,"text":"150、38、184号磁道","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":117,"id":"d4e6041f-b6e5-49da-955c-d5eb1f317e88","page_size":[595,841],"block_position":"117-5"},{"bbox":[95,532,392,540],"type":"text","angle":0,"index":6,"text":"按照FCFS的规则，按照请求到达的顺序，磁头需要依次移动到55、58、39、18、90、160、150、","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":117,"id":"ba9f62e9-20e9-4460-a96e-30e656f74ba1","page_size":[595,841],"block_position":"117-6"},{"bbox":[95,540,144,549],"type":"text","angle":0,"index":7,"text":"38、184号磁道","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":117,"id":"8c21a7cc-afc8-42e9-b2a4-4f7a5b8b81c0","page_size":[595,841],"block_position":"117-7"},{"bbox":[107,550,346,618],"index":8,"angle":0,"type":"image","img_path":"/6715f8f83cf458bbc7ddd4001a87f4129740b242242103a801fc59efd71aef9d.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4016806722689076,"page_idx":117,"id":"1be239cc-cb71-4d8a-9e2c-ee9c57fb4e5c","page_size":[595,841],"block_position":"117-8"},{"bbox":[102,620,295,629],"type":"text","angle":0,"index":9,"text":"磁头总共移动了45+3+19+21+72+70+10+112+146=498个磁道","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":117,"id":"9d2163be-7ddb-4c40-851b-83f5b45bf3e5","page_size":[595,841],"block_position":"117-9"},{"bbox":[102,629,302,638],"type":"text","angle":0,"index":10,"text":"响应一个请求平均需要移动498/9=55.3个磁道（平均寻找长度）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":117,"id":"8f09dfdf-e17c-46a1-b666-5a360ed76a45","page_size":[595,841],"block_position":"117-10"},{"bbox":[103,638,323,646],"type":"text","angle":0,"index":11,"text":"优点：公平：如果请求访问的磁道比较集中的话，算法性能还算过的去","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":117,"id":"6be70e13-d0ea-46ca-a522-76c11a50295e","page_size":[595,841],"block_position":"117-11"},{"bbox":[103,646,408,655],"type":"text","angle":0,"index":12,"text":"缺点：如果有大量进程竞争使用磁盘，请求访问的磁道很分散，则FCFS在性能上很差，寻道时间长。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":117,"id":"018cb71f-0816-4300-8da3-d9914d2b1770","page_size":[595,841],"block_position":"117-12"}],[{"bbox":[91,75,362,93],"type":"text","angle":0,"index":0,"text":"SSTF算法会优先处理的磁道是与当前磁头最近的磁道。可以保证每次的寻道时间最短，但是并不能保证总的寻道时间最短。（其实就是贪心算法的思想，只是选择眼前最优，但是总体未必最优）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"aeb85d23-4208-482b-82d1-9afa153c09a0","page_size":[595,841],"block_position":"118-0"},{"bbox":[91,96,355,113],"type":"text","angle":0,"index":1,"text":"假设磁头的初始位置是100号磁道，有多个进程先后陆续地请求访问55、58、39、18、90、160、150、38、184号磁道","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"4342bf4c-8c3a-4139-9478-bd3c2766a435","page_size":[595,841],"block_position":"118-1"},{"bbox":[104,120,317,159],"index":2,"angle":0,"type":"image","img_path":"/034efb01da8fe3382c42fb5418b56b2b04347c6621586962b3b364e200fd6a42.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.35798319327731093,"page_idx":118,"id":"45ed37a4-e011-410d-9ff7-1923fc51610d","page_size":[595,841],"block_position":"118-2"},{"bbox":[98,160,232,168],"type":"text","angle":0,"index":3,"text":"磁头总共移动了（100-18）+（184-18）=248个磁道","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"11f20f36-12c6-421b-ab2c-e8d463ac551f","page_size":[595,841],"block_position":"118-3"},{"bbox":[98,168,276,176],"type":"text","angle":0,"index":4,"text":"响应一个请求平均需要移动248/9=27.5个磁道（平均寻找长度）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"8bf0e343-f657-4da9-aeeb-07f6bcf58e9d","page_size":[595,841],"block_position":"118-4"},{"bbox":[99,176,194,184],"type":"text","angle":0,"index":5,"text":"优点：性能较好，平均寻道时间短","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"d708ff6b-31ff-47a5-af01-42bc0068a126","page_size":[595,841],"block_position":"118-5"},{"bbox":[98,191,363,207],"type":"text","angle":0,"index":7,"text":"Eg：本例中，如果在处理18号磁道的访问请求时又来了一个38号磁道的访问请求，处理38号磁道的访问请求时又来了一个18号磁道的访问请求。如果有源源不断的18号、38号磁道的访问请求","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"319a53a4-b42a-48ac-81f6-282cab36a2c3","page_size":[595,841],"block_position":"118-6"},{"bbox":[99,207,345,214],"type":"text","angle":0,"index":8,"text":"到来的话，150、160、184号磁道的访问请求就永远得不到满足，从而产生“饥饿”现象。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"a2c91bbe-ef12-47f5-b549-41a5a04af442","page_size":[595,841],"block_position":"118-7"},{"bbox":[108,282,450,312],"type":"text","angle":0,"index":10,"text":"SSTF算法会产生饥饿的原因在于：磁头有可能在一个小区域内来回来去地移动。为了防止这个问题，","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"8ec2d9b7-56ab-4865-abc0-aef7051ba583","page_size":[595,841],"block_position":"118-8"},{"bbox":[108,315,449,335],"type":"text","angle":0,"index":11,"text":"假设某磁盘的磁道为0~200号，磁头的初始位置是100号磁道，且此时磁头正在往磁道号增大的方向移动，有多个进程先后陆续地请求访问55、58、39、18、90、160、150、38、184号磁道","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"213d6b05-bc7c-4390-9ef8-123f223c7622","page_size":[595,841],"block_position":"118-9"},{"bbox":[108,342,458,394],"index":12,"angle":0,"type":"image","img_path":"/022e70459533ed272df11792e4a197c8e65b09c84f920b183ddbc090d9cfa844.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5882352941176471,"page_idx":118,"id":"db6e6bec-f326-43a7-b4ec-4f536a37b760","page_size":[595,841],"block_position":"118-10"},{"bbox":[110,393,280,401],"type":"text","angle":0,"index":13,"text":"磁头总共移动了（200-100）+（200-18）=282个磁道","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"27c281f1-5003-46c0-8cc0-9aaf1e96b740","page_size":[595,841],"block_position":"118-11"},{"bbox":[110,401,330,410],"type":"text","angle":0,"index":14,"text":"响应一个请求平均需要移动282/9=31.3个磁道（平均寻找长度）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"a20d3f30-7051-445c-842b-a73989410238","page_size":[595,841],"block_position":"118-12"},{"bbox":[110,420,434,439],"type":"text","angle":0,"index":16,"text":"缺点：①只有到达最边上的磁道时才能改变磁头移动方向，事实上，处理了184号磁道的访问请求之后就不需要再往右移动磁头了。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"d411dbc6-208e-43f7-bbe3-3a60fffdc6bb","page_size":[595,841],"block_position":"118-13"},{"bbox":[110,439,440,465],"type":"text","angle":0,"index":17,"text":"②SCAN算法对于各个位置磁道的响应频率不平均（如：假设此时磁头正在往右移动，且刚处理过90号磁道，那么下次处理90号磁道的请求就需要等磁头移动很长一段距离：而响应了184号磁道的请后组可以更次响应10A磁道的请了","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"999f0eca-e862-4a44-a57e-34d8f5b947d8","page_size":[595,841],"block_position":"118-14"},{"bbox":[88,499,334,513],"type":"title","angle":0,"index":18,"text":"# 注意接下来的LOOK调度算法才是教材里的SCAN算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":118,"id":"e414f96b-78f0-48da-bbb4-ff4d7fd9e59f","page_size":[595,841],"block_position":"118-15"},{"bbox":[93,519,396,546],"type":"text","angle":0,"index":19,"text":"扫描算法（SCAN）中，只有到达最边上的磁道时才能改变磁头移动方向，事实上，处理了184号磁道的访问请求之后就不需要再往右移动磁头了。LOOK调度算法就是为了解决这个问题，如果在磁","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"4315c61f-c845-4c38-9794-0b0ce59dce21","page_size":[595,841],"block_position":"118-16"},{"bbox":[93,551,398,570],"type":"text","angle":0,"index":20,"text":"假设某磁盘的磁道为0~200号，磁头的初始位置是100号磁道，且此时磁头正在往磁道号增大的方向移动，有多个进程先后陆续地请求访问55、58、39、18、90、160、150、38、184号磁道","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"8e22ad8e-3987-44d7-ba76-634e8434f8dc","page_size":[595,841],"block_position":"118-17"},{"bbox":[95,576,405,625],"index":21,"angle":0,"type":"image","img_path":"/b817c2c6022ab989fc9c805b054a0788978f98f45bb9e43e3201d0ffaea1b0a5.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5210084033613446,"page_idx":118,"id":"40b239e4-e909-4dad-ba1d-3d68100272cc","page_size":[595,841],"block_position":"118-18"},{"bbox":[94,640,247,648],"type":"text","angle":0,"index":22,"text":"磁头总共移动了（184-100)+（184-18)=250个磁道","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"0dd005dd-1c78-423a-b630-4e5d1110f0d4","page_size":[595,841],"block_position":"118-19"},{"bbox":[95,649,292,656],"type":"text","angle":0,"index":23,"text":"响应一个请求平均需要移动 $2 5 0 / 9 = 2 7 . 5$ 个磁道（平均寻找长度）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"83f0c3f1-ce31-4bfc-b7bb-ac8968f88a12","page_size":[595,841],"block_position":"118-20"},{"bbox":[95,657,387,674],"type":"text","angle":0,"index":24,"text":"优点：比起SCAN算法来，不需要每次都移动到最外侧或最内侧才改变磁头方向，使寻道时间进","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":118,"id":"1235b357-7763-45c9-887a-7d6f6c5c2440","page_size":[595,841],"block_position":"118-21"}],[{"bbox":[88,84,168,101],"type":"title","angle":0,"index":0,"text":"# CSCAN 算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":119,"id":"833c470f-b010-4b57-be66-b3158cc1aa37","page_size":[595,841],"block_position":"119-0"},{"bbox":[116,167,595,210],"type":"text","angle":0,"index":1,"text":"SCAN算法对于各个位置磁道的响应频率不平均，而C-SCAN算法就是为了解决这个问题。规定","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":119,"id":"8c9dba4e-ed65-4994-bd1c-58f124a965b8","page_size":[595,841],"block_position":"119-1"},{"bbox":[116,216,595,246],"type":"text","angle":0,"index":2,"text":"假设某磁盘的磁道为0~200号，磁头的初始位置是100号磁道，且此时磁头正在往磁道号增大移动，有多个进程先后陆续地请求访问55、58、39、18、90、160、150、38、184号磁道","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":119,"id":"913fa74e-24a0-44ab-a708-ba13d3dae56d","page_size":[595,841],"block_position":"119-2"},{"bbox":[123,256,595,336],"index":3,"angle":0,"type":"image","img_path":"/226f8f9efbde596ee2f5c1dd964218887404c7901b3ffd49dfc5692c5427c9bb.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.7932773109243697,"page_idx":119,"id":"d8419dbd-acb3-45bf-bce7-6e13123e3d1d","page_size":[595,841],"block_position":"119-3"},{"bbox":[117,341,450,384],"type":"text","angle":0,"index":4,"text":"磁头总共移动了（200-100)+（200-0)+（90-0)=390个磁道响应一个请求平均需要移动390/9=43.3个磁道（平均寻找长度）优点：比起SCAN来，对于各个位置磁道的响应频率很平均。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":119,"id":"d1826cdc-612c-40b5-bafe-17972ca2b17a","page_size":[595,841],"block_position":"119-4"},{"bbox":[87,431,381,444],"type":"title","angle":0,"index":5,"text":"# 注意接下来的C-LOOK调度算法才是我们教材中的的CSCAN算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":119,"id":"dde4ed86-7b8f-41ba-8eae-a61ea05e849f","page_size":[595,841],"block_position":"119-5"},{"bbox":[107,447,471,479],"type":"text","angle":0,"index":6,"text":"C-SCAN算法的主要缺点是只有到达最边上的磁道时才能改变磁头移动方向，并且磁头返回时不一定需要返回到最边缘的磁道上。C-LOOK算法就是为了解决这个问题。如果磁头移动的方向上已经没有磁道访问请求了，就可以立即让磁头返回，并且磁头只需要返回到有磁道访问请求的位置即可。","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":119,"id":"d161eabd-2f8a-4327-8548-a55c59ca3983","page_size":[595,841],"block_position":"119-6"},{"bbox":[108,484,471,505],"type":"text","angle":0,"index":7,"text":"移动，有多个进程先后陆续地请求访间55、58、39、18、90、160、150、38、184号磁道","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":119,"id":"d9ff68e5-aeef-462c-a90f-4b9fe69069f9","page_size":[595,841],"block_position":"119-7"},{"bbox":[112,511,498,594],"index":8,"angle":0,"type":"image","img_path":"/0dfc46361cf1b6017a26cbbc71da325cdbe3b8dc68d72048025b36b1f71a3602.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6487394957983194,"page_idx":119,"id":"c0411961-4a7e-4103-8ec0-6b9e0d126a5c","page_size":[595,841],"block_position":"119-8"},{"bbox":[86,618,175,632],"type":"text","angle":0,"index":9,"text":"假脱机技术：用ru","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":119,"id":"859f2821-f80d-4ded-bbdd-6f633302d77f","page_size":[595,841],"block_position":"119-9"},{"bbox":[88,634,262,647],"type":"text","angle":0,"index":10,"text":"脱离主机的控制进行的输入/输出操作","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":119,"id":"bd15bb51-2140-4e19-a6f5-19d256294a66","page_size":[595,841],"block_position":"119-10"},{"bbox":[88,650,311,663],"type":"text","angle":0,"index":11,"text":"在磁盘上开辟两个存储区域——输入井和输出井","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":119,"id":"92b3fd2d-0219-491b-bff5-60a2ff13339b","page_size":[595,841],"block_position":"119-11"},{"bbox":[88,666,143,678],"type":"text","angle":0,"index":12,"text":"外围控制机","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":119,"id":"97d64d4e-ee07-4d4d-973b-4bd8b08e7291","page_size":[595,841],"block_position":"119-12"}]],"mergeConnections":[]}