Giáo trình “Hệ điều hành” biên soạn theo chương trình đào tạo chuyên ngành Tin học hệ đại học của Khoa Tin trường Đại học Quy nhơn. Giáo trình dựa theo bài giảng “Hệ điều hành” mà tác giả đã giảng dạy từ năm 2002 cho khoa Tin học của trường. Tập giáo trình biên soạn để giảng dạy một khoảng thời gian là 45 tiết, nên chỉ tập trung những vấn đề trọng tâm của Hệ điều hành.
LỜI NÓI ĐẦU Giáo trình “Hệ điều hành” biên soạn theo chương trình đào tạo chuyên ngành Tin học hệ đại học của Khoa Tin trường Đại học Quy nhơn. Giáo trình dựa theo bài giảng “Hệ điều hành” mà tác giả đã giảng dạy từ năm 2002 cho khoa Tin học của trường. Tập giáo trình biên soạn để giảng dạy một khoảng thời gian là 45 tiết, nên chỉ tập trung những vấn đề trọng tâm của Hệ điều hành. Trong quá trình biên soạn tài liệu, chúng tôi xin cảm ơn các đồng nghiệp và các sinh viên khoa Tin học đã đóng góp ý kiến và cổ vũ để sớm hoàn thiện giáo trình. Mặc dù có nhiều cố gắng trong biên soạn nhưng không thể nào tránh khỏi thiếu sót. Mong các bạn thông cảm và lượng thứ. Quy nhơn, tháng 10 năm 2005 Người biên soạn Lương Tín. 1 2 Chương 1 GIỚI THIỆU 1.1 KHÁI NỆM HỆ ĐIỀU HÀNH 1.1.1 Giới thiệu Hệ điều hành là một chương trình hoạt động giữa người sử dụng và phần cứng máy tính. Nó cung cấp một môi trường để người sử dụng có thể thi hành chương trình đó. Hệ điều hành là một phần quan trọng của hệ thống máy tính. Một hệ thống máy tính gồm : phần cứng, hệ điều hành, trình ứng dụng và người sử dụng. Hệ thống máy tính Người dùng Trình ứng dụng Hệ điều hành Phần cứng Phần cứng : Bao gồm các linh kiện tạo nên máy tính. Trình ứng dụng: như các chương trình dòch, hệ thống dữ liệu , các trò chơi, các chương trình thương mại v.v và các chương trình này sử dụng tài nguyên hệ thống máy tính để giải quyết yêu cầu người sử dụng Hệ điều hành: điểu khiển và phối hợp việc sử dụng phần cứng cho những ứng dụng khác nhau của nhiều người sử dụng khác nhau. Nó cung cấp môi trường mà các chương trình ứng dụng làm việc hữu hiệu trên đó. Nó là bộ phân phối tài nguyên của máy tính. Tài nguyên ở đây có thể hiểu như : thời gian sử dụng CPU, vùng bộ nhớ, vùng lưu trữ tập tin, thiết bò xuất nhập. Nó kiểm soát và cấp phát các tài nguyên đó một cách hợp lý tối ưu. Ví dụ : • Trình ứng dụng _ MS Office _ Corel Draw _Internet Explore • Hệ điều hành _ MS-DOS , Window 95 ,Window 98 _ Novell Netware _ Window NT , Window 2000 , Window XP 3 _Unix :Solairs , Linux, SCO , HP-UX ,AIX _ Real time :embeded OSs , BeOs , RTLinux • Phần cứng Máy tính có các CPU như : Intel , Alpha , Power PC , Motola. 1.1.2 Các tính chất cơ bản của hệ điều hành - Tính tin cậy: Mọi sự hoạt động của hệ điều hành phải chuẩn xác tuyệt đối. Chỉ khi nào chắc chắn đúng thì hệ điều hành mới cung cấp thông tin cho người sử dụng, nếu vẫn không được lúc đó hệ thống đưa các thông báo lỗi. - Tính an toàn: Hệ điều hành có những cơ chế bảo vệ dữ liệu và bảo vệ các tài nguyên sử dụng chung, tránh sự vi phạm do cố ý người sử dụng và chương trình. Nó đảm bảo sao cho dữ liệu và chương trình không bò thay đổi ngoài ý muốn trong mọi chế độ hoạt động của hệ thống máy tính. - Tính hiệu quả: Các tài nguyên của hệ thống phải được khai thác một cách tối ưu. Phải được duy trì sự đồng bộ hệ thống, tránh trình trạng treo hệ thống, không được để những thiết bò chậm làm ảnh hưởng hệ thống. - Tính kế thừa: Hệ điều hành mang tính chất kế thừa từ những phiên bản trước, làm cho người sử dụng thích nghi với phiên bản mới. Cập nhật các chức năng tiện ích và dễ sử dụng, cải tiến ít lỗi hơn. - Tính thuận lợi: Sử dụng hệ điều hành dễ dàng, mang tính chuyên nghiệp đối với người đã từng sử dụng và dễ dàng đối với người chưa sử dụng. Các thao tác thuận lợi, hướng dẫn phong phú, các tiện ích kèm theo đa dạng. Trong một thời gian ngắn, người sử dụng có thể nắm bắt nhanh chóng các tính năng của hệ điều hành. 1.2 CÁC THÀNH PHẦN CỦA HỆ ĐIỀU HÀNH 1.2.1 Quản lý tiến trình Một chương trình không được thực hiện gì cả nếu như nó không được CPU thi hành. Một tiến trình là một chương trình đang được thi hành, nó thực hiện theo lô. Thí dụ như một spooling xuất ra máy in là một quá trình. Một tiến trình phải sử dụng tài nguyên như thời gian sử dụng CPU, bộ nhớ, tập tin, các thiết bò xuất nhập để hoàn tất công việc của nó. Các tài nguyên này được cung cấp khi quá trình tạo ra hay trong quá trình thi hành. Khi tiến trình được tạo nó sử dụng tài nguyên vật lý của hệ thống và lô gíc, khởi tạo dữ liệu nhập. Thí dụ, khảo sát tiến trình hiển thò trạng thái tập tin lên màn hình. Đầu vào quá trình là tên tập tin và quá trình sẽ thực hiện những chỉ thò thích hợp, thực hiện lời gọi hệ thống để nhận được những thông tin mong muốn và hiển thò nó lên màn hình. Khi tiến trình kết thúc hệ điều hành sẽ tái tạo các tài nguyên có thể dùng lại. 4 Một tiến trình là hoạt động hoàn toàn ngược lại với một tập tin trên đóa là thụ động , với một bộ đếm chương trình cho biết lệnh kế tiếp được thi hành. Việc thi hành theo cơ chế tuần tự, CPU sẽ thi hành từ lệnh đầu đến lệnh cuối . Một tiến trình được coi là một đơn vò làm việc của hệ thống. Một hệ thống có nhiều tiến trình hoạt động cùng một lúc, trong đó một số tiến trình là của hệ điều hành , một số tiến trình là của người sử dụng, các tiến trình có thể diễn ra một cách đồng thời. Một số chức năng của tiến trình là: _ Tạo và huỷ các tiến trình của người sử dụng và của hệ thống . _ Ngưng và thực hiện một tiến trình . _ Cung cấp cơ chế đồng bộ tiến trình . _ Cung cấp thông tin giữa các tiến trình . _ Cung cấp cơ chế kiểm soát deadlock . 1.2.2 Quản lý bộ nhớ Quản lý bộ nhớ chính Bộ nhớ chính là trung tâm của mọi thao tác, xử lý. Bộ nhớ có thể xem là mảng kiểu byte, word. Mọi phần tử của nó đều có đòa chỉ. Đó là nơi mà CPU truy xuất một cách nhanh chóng đối với các thiết bò nhập /xuất. CPU đọc các chỉ thò từ bộ nhớ chính nầy, các vụ DMA cũng đọc và ghi trên bộ nhớ chính. Thông thường bộ nhớ chứa thông tin các thiết bò mà CPU truy cập tới . Bộ nhớ sẽ chứa những thông tin mà CPU có thể đònh vò trực tiếp . Ví dụ CPU truy xuất dữ liệu từ đóa, những dữ liệu này được chuyển vào bộ nhớ qua lời gọi hệ thống. Một chương trình muốn thi hành trước hết phải ánh xạ thành đòa chỉ tuyệt đối và nạp vào bộ nhớ chính. Khi chương trình thi hành, hệ thống truy xuất các chỉ thò và dữ liệu chương trình vào bộ nhớ chính. Ngay khi một tiến trình kết thúc, dữ liệu vẫn còn trong bộ nhớ cho đến khi một tiến trình khác chồng lên. Để tối ưu hoá các tiến trình hoạt động của CPU, một số tiến trình lưu trữ sẵn trong bộ nhớ chính của máy tính. Có rất nhiều kế hoạch và thuật toán quản trò bộ nhớ do có nhiều chương trình ứng dụng khác nhau. HĐH có vai trò như sau trong việc quản trò bộ nhớ chính: _ Lưu trữ thông tin về các vò trí trong bộ nhớ đã được sử dụng và ai sử dụng. _ Quyết đònh quá trình nào được nạp vào bộ nhớ . _ Cấp phát và thu hồi bộ nhớ cần thiết. Quản lý bộ nhớ phụ Trong quá trình thực hiện một tiến trình, các dữ liệu không thể đưa vào bộ nhớ chính được mà lưu trữ trên bộ nhớ phụ và đưa vào bộ nhớ chính khi cần thiết. Hệ thống lưu trữ phụ đều dùng đóa để lưu chương trình và cả dữ liệu. Sau khi thực hiện một quá trình các kết quả đều lưu trữ trên bộ nhớ phụ. Có nhiều thuật toán hợp lý để trao đổi dữ liệu và chương trình giữa bộ nhớ chính và phụ. Vai trò của hệ điều hành trong việc quản lý đóa : _ Quản lý vùng trống trên đóa . 5 _ Đònh vò lưu trữ . _ Lập lòch cho đóa . Tốc độ hệ thống luôn luôn phụ thuộc rất nhiều vào đóa. 1.2.3 Quản lý hệ thống tập tin Hệ thống quản lý tập tin là thành phần quan trọng nhất của hệ điều hành. Máy tính có thể lưu trữ thông tin trong nhiều dạng thiết bò vật lý khác nhau: băng từ, đóa từ , đóa quang Mỗi dạng có đặc thù riêng về mặt tổ chức vật lý. Mỗi thiết bò có một bộ kiểm soát như bộ điều khiển đóa riêng. Những đặc điểm của thiết bò mà người sử dụng quan tâm là tốc độ, khả năng lưu trữ, tốc độ truyền dữ liệu và cách truy xuất. Để cho việc sử dụng máy tính một cách thuận tiện, hệ điều hành cung cấp một cái nhìn logic đồng nhất về hệ thống lưu trữ. Hệ điều hành đònh nghóa một đơn vò lưu trữ logic là tập tin. Hệ điều hành tạo ra một ánh xạ từ tập tin đến vùng thông tin trên đóa và truy xuất những tập tin này qua các thiết bò lưu trữ . Một tập tin là một tập hợp những thông tin do người tạo ra xác đònh. Thông thường một tập tin đại diện cho một chương trình và dữ liệu . Vai trò của hệ điều hành trong việc quản lý tập tin: _ Tạo và xoá một tập tin. _ Tạo và xoá một thư mục . _ Hỗ trợ các thao tác trên tập tin và thư mục. _ nh xạ các tập tin trên hệ thống lưu trữ phụ . _ Back up các tập tin trên các thiết bò lưu trữ. 1.2.4 Quản lý hệ thống xuất /nhập Một trong những mục tiêu của hệ điều hành là che dấu những đặc thù của các thiết bò phần cứng đối với người sử dụng thay vào đó là một lớp thân thiện hơn, người sử dụng dễ thao tác hơn . Một hệ thống xuất nhập bao gồm : _ Hệ thống buffer caching. _ Giao tiếp điều khiển thiết bò tổng quát. _ Bộ điều khiển cho các thiết bò phần cứng . Chỉ có device – driver mới hiểu đến cấu trúc đặc thù của thiết bò mà nó mô tả. 1.2.5 Hệ thống bảo vệ, lập mạng Trong HĐH còn có một cơ chế bảo vệ. Với cơ chế này các tài nguyên của hệ thống không đụng độ với nhau, giúp cho hệ thống làm việc bình thường, bảo vệ tài nguyên dùng chung, phát triển và ngăn chặn các khả năng sai sót của tiến trình. Để thực hiện một quá trình mới, yêu cầu được đưa từ các thiết bò ngoại vi, sau đó hệ điều hành sẽ xử lý các yêu cầu đó theo một cơ chế dòng lệnh. Một số hệ điều hành thực hiện cơ chế dòng lệnh bên trong hạt nhân, một số khác như MS-DOS và UNIX trhì xem hệ điều hành là một chương trình đặc biệt, được thi hành khi các công việc bắt đầu hoặc khi người sử dụng khi login đầu tiên. 6 Các lệnh được đưa vào hệ điều hành thông qua bộ điều khiển lệnh. Trong các hệ thống chia sẻ thời gian một chương trình đọc và thông dòch các lệnh điều khiển được thực hiện một cách tự động. Chương trình này thường được gọi là bộ thông dòch điều khiển card, cơ chế dòng lệnh hoặc shell. Chức năng của nó rất đơn giản đó là lấy các lệnh kế tiếp và thi hành . Một hệ điều hành sẽ có những giao tiếp khác nhau, dạng đơn giản theo cơ chế dòng lệnh, dạng thân thiện với người sử dụng như là giao diện đồ hoạ của Window, Macintosh có các biểu tượng, cửa sổ thao tác dùng chuột. Một chức năng khác của HĐH hiện nay là khả năng kết nối mạng. Các máy tính được nối mạng và chia sẻ tài nguyên truyền thông trên mạng thông qua các hệ thống giao tiếp mạng. Các tiến trình trong mỗi máy trạm có thể kết nối với nhau và xử lý thông qua hệ thống mạng. 1.3 CHỨC NĂNG CỦA HỆ ĐIỀU HÀNH 1.3.1 Các dòch vụ của hệ điều hành Hệ điều hành tạo ra một môi trường để thi hành các chương trình, bằng cách cung cấp các dòch vụ cho chương trình và cho người sử dụng. Tuỳ theo kiến trúc hệ điều hành mà các dòch vụ khác nhau, nhưng HĐH có một số dòch vụ chung như sau: - Phục vụ việc thực hiện chương trình. - Điều khiển các quá trình xuất/nhập. - Thao tác trên hệ thống tập tin. - Thông tin giữa các tiến trình, gửi nhận thông điệp. - Phát hiện lỗi và biện pháp giải quyết. - Tổ chức các dòch vụ. 1.3.2 Lời gọi hệ thống Lời gọi hệ thống cung cấp một giao diện giữa tiến trình và hệ điều hành. Hệ điều hành cung cấp hai phương pháp để tổ chức thực hiện lời gọi hệ thống. - Tổ chức bằng những lệnh hợp ngữ. - Tổ chức trực tiếp từ các chương trình viết bằng ngôn ngữ bậc cao như các hàm và lời gọi hàm, các chương trình con . Trong các ngôn ngữ lập trình bậc cao, người ta không quan tâm đến chi tiết mà chỉ cần thông qua các chỉ dẫn. Có ba phương pháp được sử dụng để chuyển tham số cho hệ điều hành như : sử dụng thanh ghi, sử dụng bảng trong bộ nhớ và stack. Lời gọi hệ thống chia thành các loại: kiểm soát tiến trình, thao tác tập tin và thao tác thiết bò, thông tin. 1.3.3 Các chương trình hệ thống Các chương trình hệ thống cung cấp công cụ cho người sử dụng thực hiện các thao tác quản lý và điều khiển hệ thống. Nó có thể chia thành một số loại như: - Các chương trình thao tác với tập tin và thư mục. - Các chương trình thông tin trạng thái. - Các chương trình tạo và mô tả tập tin. 7 - Các chương trình hỗ trợ ngôn ngữ lập trình - Các chương trình điều khiện nạp và thi hành chương trình. - Các chương trình giải thích lệnh , gửi và nhận thông điệp. - Các chương trình ứng dụng kèm theo như : duyệt Web, đònh dạng đóa , sao chép và các chương trình tiện ích khác. 1.4 KIẾN TRÚC HỆ ĐIỀU HÀNH 1.4.1 Mononlithic OS Đây là cấu trúc đơn giản dùng trong hệ thống nhỏ và có giới hạn . MS_DOS là một hệ điều hành, nó cung cấp những chức năng cần thiết trong một không gian nhỏ nhất và không chia thành những đơn thể rõ rệt Chương trình ứng dụng Chương trình thường trú MS –DOS device driver ROM BIOS device driver Các chương trình ứng dụng có thể truy cập thông qua các dòch vụ của DOS. Một hệ điều hành khác cũng tương tự như vậy là UNIX . Cấu trúc gồm 2 phần: hạt nhân và chương trình hệ thống . Hạt nhân được chia thành một chuỗi giao tiếp và device driver Những gì dưới lời gọi hệ thống và trên phần cứng, đó là hạt nhân . Hạt nhân cung cấp hệ thống tập tin lập lòch CPU, quản trò bộ nhớ và những chức năng khác của hệ điều hành khác thông qua lời gọi hệ thống. Tóm lại toàn bộ chức năng của hệ thống được kết hợp trong một lớp. Những chương trình hệ thống dùng lời gọi hệ thống được hỗ trợ bởi hạt nhân để cung cấp những chức năng hữu ích như biên dòch và thao tác tập tin . Lời gọi hệ thống đònh nghóa một giao tiếp lập trình cho UNIX , đó là tập hợp những chương trình hệ thống thông thường trong đó có đònh nghóa giao tiếp với người sử dụng. 1.4.2 Microkernel OS và thiết kế phân lớp Những version mới của UNIX được thiết kế để sử dụng phần cứng phức tạp hơn , do đó hệ điều hành được chia thành nhiều phần nhỏ hơn . Bằng cách sử dụng topdown, những chức năng và phần chính được chia thành nhiều phần nhỏ . Che dấu thông tin , không cho chương trình của người sử dụng có thể cài đặt truy xuất cấp thấp , thay vào đó là các lớp giao tiếp bên trong. Hệ điều hành được chia thành nhiều lớp. Lớp dưới cùng là phần cứng , lớp trên cùng là giao tiếp đối với người sử dụng. Lớp hệ điều hành được cài đặt thành những đối tượng trừu tượng. Thông thường một lớp hệ điều hành bao gồm một số 8 cấu trúc dữ liệu và các hàm có thể gọi bởi lớp ở trên và bản thân nó gọi những lớp ở cấp dưới . Mỗi lớp cài đặt chỉ sử dụng một số thao tác do lớp dưới cung cấp . Một lớp cũng không cần biết hệ điều hành được cài đặt như thế nào, nó chỉ cần biết những thao tác này làm gì thôi. Cấu trúc các lớp này lần đầu tiên được thiết kế và áp dụng cho hệ điều hành THE ( Techinische Hogeschool Eindhoven ). Hệ thống chia làm 6 lớp Lớp 5 Chương trình của người sử dung Lớp 4 Tạo buffer cho thiết bò nhập xuất Lớp 3 Device driver thao tác cho màn hì nh Lớp 2 Quản lý bộ nhớ Lớp 1 Lập lòch cho CPU Lớp 0 Phần cứng 1.4.3 Máy ảo Thông thường , một hệ thống máy tính bao gồm nhiều lớp. Phần cứng ở lớp thấp nhất. Hạt nhân ở lớp kế dùng các chỉ thò của phần cứng tạo ra một tập hợp lời gọi hệ thống. Các chương trình hệ thống có thể sử dụng hoặc là các lời gọi hệ thống hoặc là các chỉ thò của phần cứng. Vì vậy nó xem phần cứng và lời gọi hệ thống như cùng một lớp . Một số hệ thống có thể tổ chức sao cho các chương trình ứng dụng có thể gọi dễ dàng các chương trình hệ thống. Mặc dù chương trình hệ thống ở lớp cao hơn các các phần khác nhưng là chương trình ứng dụng có thể xem mọi phần dưới nó là một phần của máy. Lớp ứng dụng này sử dụng một khái niệm là máy ảo. Ví dụ hệ điều hành máy ảo IBM Bằng cách sử dụng lập lòch cho CPU và kỹ thuật bộ nhớ ảo, một hệ điều hành có thể tạo nhiều tiến trình phức tạp, mỗi cái sẽ thực hiện trên một bộ vi xử lý và bộ nhớ riêng. Những tiến trình này có đặc điểm riêng như lời gọi hệ thống và hệ thống tập tin không được cung cấp phần cứng một cách trực tiếp. Tài nguyên hệ thống được chia sẻ để tạo những máy ảo. Lập lòch CPU chia sẻ CPU cho các người sử dụng. Spooling và hệ thống tập tin được chia thành card đọc ảo và máy in ảo. Một terminal cung cấp các chức năng tạo các thao tác màn hình ảo . Vấn đề phức tạp nhất của hệ thống máy ảo là hệ thống đóa. Giả sử hệ thống chỉ có ba bộ điều khiển nhưng có bảy máy ảo. Như vậy không thể gán mỗi máy ảo một bộ điều khiển đóa và giải pháp là xây dựng hệ thống đóa ảo. Mặc dù khái niệm máy ảo rất hữu ích nhưng khó cài đặt. Máy ảo phải thực hiện ở hai dạng: dạng giám sát (monitor) và dạng người sử dụng. Ngoài ra máy ảo còn phải giải quyết các vấn đề vận chuyển dữ liệu và thời gian . 9 Tiến trình Tiến trình Tiến trình Tiến trình Hạt nhân Phần cứng Hạt nhân Hạt nhân Hạt nhân Máy ảo Phần cứng 1.5 LỊCH SỬ PHÁT TRIỂN HỆ ĐIỀU HÀNH 1.5.1 Thế hệ 1 ( (1945-1955) Máy tính thế hệ này chưa có hệ điều hành (dùng bằng ống đèn chân không). Mỗi máy được một nhóm thực hiện tất cả từ thiết kế, xây dựng lập trình, thao tác đến quản lý. Lập trình bằng ngôn ngữ máy tuyệt đối, thường là dùng bảng điều khiển để thực hiện các chức năng cơ bản. Sau đó vào khoảng thập niên 1950, thao tác trên phiếu đục lỗ và kết quả vẫn giữ trên phiếu đục lỗ . 1.5.2 Thế hệ 2 ( 1955-1965) Máy tính được tạo ra trên nền tảng các chất bán dẫn. Lần đầu tiên có sự phân chia rõ ràng giữa nhà thiết kế, nhà xây dựng, nhà vận hành, nhà lập trình và bảo trì. Hệ thống xử lý theo lô ra đời, nó lưu các yêu cầu cần thực hiện lên băng từ, và hệ thống sẽ đọc và thi hành lần lượt. Do tốc độ tính toán CPU khá nhanh nên để đồng bộ với các thiết bò xuất/nhập, CPU dùng cơ chế off_line sẽ ghi kết quả lên băng từ làm bộ dữ liệu trung gian và cơ chế spooling đồng bộ hoá các thao tác bên ngoài cho phép CPU hoạt động theo one_line. Ngôn ngữ lập trình chủ yếu lúc này là FORTRAN và hợp ngữ . 1.5.3 Thế hệ 3 ( 1965-1980 ) Do sự ra đời các hệ thống máy tính sử dụng mạch tích hợp (IC) được dùng nhiều trong khoa học và thương mại. Tiêu biểu như hệ máy IBM 360, sự ra đời máy tính kèm theo sự ra đời các thiết bò ngoại vi, kèm theo các hệ thống điều khiển nó là hệ thống đa chương. Hệ thống đa chương gia tăng khai thác CPU bằng cách tổ chức các công việc sao cho CPU trong tình trạng làm việc. Hệ điều hành sẽ lưu giữ một phần của các công việc ở nơi lưu trữ trong bộ nhớ. CPU sẽ lần lượt thực hiện phân công các việc này . Khi đang thực hiện nếu có yêu cầu truy xuất thiết bò thì CPU không nghỉ mà thực hiện các công việc tiếp theo. 10 [...]... nếu trong một thành phần bò hỏng các hệ thống còn lại vẫn phải làm việc • Thông tin liên lạc với nhau nhanh chóng CÂU HỎI VÀ BÀI TẬP 1 Trình bày những tính chất cơ bản của hệ điều hành 2 Tài nguyên của hệ thống là gì ? Cho ví dụ minh hoạ 3 Nêu các chức năng cơ bản của hệ điều hành Minh hoạ một số chức năng một số hệ điều hành đã biết 4 So sánh những đặc điểm khác nhau của các hệ điều hành : đơn nhiệm,... chế bảo vệ của các hệ điều hành: DOS, Window9x và Window 2000 12 Chương 2 QUẢN LÝ TIẾN TRÌNH 2.1 QUẢN LÝ TIẾN TRÌNH 2.1.1 Khái niệm Để thực hiện các chương trình trong hệ thống máy tính cùng một lúc, nhất là hệ điều hành đa nhiệm, đa chương Hệ thống phần mềm được tổ chức thành các tiến trình để chuyển đổi qua lại giữa các chương trình thực thi mà chúng ta có cảm giác các chương trình đó cùng thực hiện... tiến trình: đònh danh tiến trình, đưa vào danh sách quản lý , xác đònh độ ưu tiên, tạo PCB và cấp phát tài nguyên, tạo ra cây tiến trình. Tiến trình gọi lời hệ thống tạo tiến trình mới gọi là tiến trình cha, tiến trình được tạo gọi là tiến trình con Tiến trình cha cùng hoạt động với các tiến trình con hay chờ các tiến tình con A B E D C F G H Cây tiến trình I 14 -Kết thúc tiến trình : một tiến trình. .. danh sách quản lý hệ thống, thu hồi các tài nguyên đã được cấp phát và huỷ bỏ PCB Các tiến trình con phải được rời khỏi hàng đợi trước tiến trình cha kết thúc - Tạm dừng tiến trình - Tái kích hoạt tiến trình - Phân phối các tiến trình - Cho phép tiến trình trao đổi thông tin với các tiến trình đó - Thay đổi độ ưu tiên của tiến trình 2.1.6 Điều phối các tiến trình Để điều khiển các tiến trình ở nhiều trạng... thường xuyên để các tiến trình có thể trao đổi thông tin và nhiều người sử dụng Để thực hiện mục tiêu hệ điều hành phải chọn tiến trình tiếp theo để xử lý Khi có nhiều quá trình cùng tồn tại trong hệ thống, bộ điều phối sẽ sử dụng một giải thuật tối ưu để chọn thứ tự các tiến trình để CPU phục vụ một cách hiệu quả, tận dụng được thời gian của CPU Trong hệ điều hành cũng có một thành phần khác gọi là bộ... bình của các tiến trình trong mỗi giải thuật Giải thuật nào có độ trung bình đợi ngắn nhất 26 Chương 3 XỬ LÝ TIẾN TRÌNH 3.1 CÁC TIẾN TRÌNH ĐỒNG THỜI 3.1.1 Khái niệm Các tiến trình hoạt động trong hệ thống tồn tại hai mối quan hệ: độc lập và hợp tác song hành Nếu tiến trình được hoạt động độc lập nếu nó không gây ảnh hưởng và bò ảnh hưởng các tiến trình khác Nhưng thực tế các hệ điều hành mạng, phân tán,... interrupt • Khi tiến trình xử lý interrupt thực hiện xong, trạng thái của tiến trình có thể khôi phục lại và tiến trình được tiếp tục xử lý • Cho phép interrupt lồng nhau Ngắt Trình xử lý ngắt 16 Một số hoạt động của xử lý ngắt phải được thực hiện ngay lập tức như : hệ thống xử lý lỗi, nhớ trạng thái tiến trình ,… những chương trình này nằm sẵn trong trình thường trú hệ điều hành, một số chương trình ít cấp... khi hệ điều hành chuyển việc xử lý tiến trình từ trạng thái này đến trạng thái khác Khi chuyển ngữ cảnh xảy ra, trong hệ điều hành bao gồm các chương trình con gọi là thẻ ngắt ưu tiên gọi là ngắt loại 1 được điều khiển các tiến trình để xử lý – các thẻ ngắt SVC , thẻ I/O , thẻ external , thẻ restart, thẻ program check, thẻ machine check Khi ngắt xảy ra thì nó lưu trạng thái của tiến trình hiện hành, ... song song Tiến trình là một chương trình đang thực thi và tiến trình có thời gian sống từ lúc khởi tạo để lấy tài nguyên hệ thống, thực thi và kết thúc Khi tiến trình kết thúc nó trả lại các tài nguyên hệ thống Tiến trình là một thực thể tích cực khác với chương trình ở thể thụ động Nó có thể tương tác với người dùng và thế giới bên ngoài Khi chương trình thực hiện nó chuyển thành các tiến trình có nhiều... bộ điều phối Hệ điều hành sử dụng 2 loại danh sách để thực hiện điều phối tiến trình là danh sách sẵn sàng và danh sách đợi Khi tiến trình bắt đầu đi vào hệ thống , nó được chèn vào danh sách tác vụ Các tác vụ sẽ đưa vào bộ nhớ chính và CPU tiếp nhận mới đưa vào danh sách sẵn sàng Bộ điều phối sẽ chọn một tiến trình trong danh sách sẵn sàng và CPU tiếp nhận nó để xử lý Trong thời gian thực thi tiến trình