Bài giảng Hệ điều hành - Bài 1: Tổng quan Hệ điều hành - Lương Trần Hy Hiến

1. Hệ điều hành là gì? 2. Cấu trúc phần cứng 3. Đa chương và chia sẽ thời gian 4. Hoạt động Hệ điều hành 5. Cấu trúc Hệ điều hành 6. Lời gọi hệ thống (System Call) 7. Quá trình khởi động máy tính

pdf77 trang | Chia sẻ: thuongdt324 | Lượt xem: 942 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bài giảng Hệ điều hành - Bài 1: Tổng quan Hệ điều hành - Lương Trần Hy Hiến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Ths. Lương Trần Hy Hiến www.hutechos.tk  Giảng viên:  Ths. Lương Trần Hy Hiến (HIENLTH)  Khoa CNTT, ĐH Sư phạm TpHCM (FIT – HCMUP)  Email: hienlth@hcmup.edu.vn  Tài liệu môn học: 2  Tài liệu tham khảo  Sách, giáo trình Hệ điều hành, HUTECH  Abraham Silberschatz, Peter Baer Galvin, Greg Gagne (2013), Operating System Concepts - 9th edition, ISBN: 978-1-118-06333-0 3 1. Hệ điều hành là gì? 2. Cấu trúc phần cứng 3. Đa chương và chia sẽ thời gian 4. Hoạt động Hệ điều hành 5. Cấu trúc Hệ điều hành 6. Lời gọi hệ thống (System Call) 7. Quá trình khởi động máy tính 4 5 Nhu cầu: Người dùng luôn thích sử dụng HĐH cho phép chạy vài chương trình đồng thời Hệ điều hành như thế gọi là gì?  Thực tế: Hầu hết các máy tính chỉ có một bộ vi xử lý (các máy có >1 CPU khá đắt tiền) Làm sao thỏa mãn được nhu cầu người dùng?  Một CPU rõ ràng chỉ có thể chạy được một chương trình  Không thể chia CPU làm nhiều phần như chia bánh được   Các chương trình muốn có thể chạy thì trước hết cần phải được nạp vào trong bộ nhớ chính (RAM).  Khi có nhiều chương trình cùng sử dụng bộ nhớ thì HĐH sẽ thực hiện việc chia sẻ cho mỗi chương trình không gian nhớ riêng.  Vấn đề: bộ nhớ RAM thì có hạn (ví dụ 64MB), vậy khi chạy nhiều chương trình thì ra sao ??? Ví dụ:  Windows XP (lõi) 60MB  Windows Media Player 12MB  Visual Studio .NET 30MB  Làm cách nào mà Windows vẫn chạy được? 6  Khi đang nghe nhạc, nếu Windows gặp lỗi, ta có nghe được tiếng báo lỗi?  Chỉ có các hệ điều hành như ME, 2000, XP,  Vậy HĐH đã sử dụng giải pháp nào?  Luân phiên?  Tuần tự?  Chia bánh?  Giải pháp khác?  ☺Về nhà bạn thử làm cho Windows phát 2 bài nhạc khác nhau trên 2 loa xem? Có được không? 7 8 Phần mềm Ứng dụng Hệ thống Phần cứng Thiết bị xử lý và lưu trữ Thiết bị nhập liệu Windows XP, 7, 8, ... Thiết bị xuất (monitor)  Hệ điều hành  Là 1 chương trình quản lý phần cứng máy tính  Trung gian giữa người dùng và phần cứng máy tính  Cung cấp môi trường cho các ứng dụng khác thực thi  Hệ điều hành mạng  Là 1 hệ điều hành  Cung cấp những khả năng cần thiết để kết nối mạng  VD: WinXP, Win 2000 server  Tiến trình (Process)  Chương trình đang thực thi trên máy  VD: mở 1 file word  tạo ra 1 tiến trình PW  Tiểu trình (thread)  Một dòng xử lý trong 1 tiến trình  Một tiến trình có 1 hay nhiều tiểu trình  VD: trong tiến trình PW ▪ Luồng nhận thao tác của người dùng ▪ Luồng kiểm tra lỗi ▪ Process P int a; T1 T2 T 3 01/2009 KHOA CNTT - ĐH KHTN TP.HCM 13  Quản trị tài nguyên  CPU, RAM, HDD, printer  Nhiệm vụ: Cung cấp giải thuật cấp phát, quản trị tài nguyên cho các đối tượng hoạt động.  Mục tiêu:Cấp phát đầy đủ, công bằng, hiệu quả  Điều khiển thiết bị  Nhiệm vụ: Che dấu các chi tiết phần cứng, tạo môi trường dễ làm việc hơn cho người dùng.  Mục tiêu: Tạo sự độc lập thiết bị.  Giao tiếp với người dùng (user interface - UI)  Command-line interface (CLI)  Batch interface (Thực thi trên 1 file lưu các lệnh)  Graphical user interface (GUI)  Nạp và Thực thi chương trình (load & run)  Nhập xuất (I/O Operations)  Thao tác với hệ thống tập tin (file system)  Liên lạc giữa các tiến trình  Chia sẻ bộ nhớ  Truyền thông điệp  Phát hiện lỗi  Định vị tài nguyên  Accounting  Bảo mật  Mục tiêu thiết kế  Lựa chọn phần cứng  Loại hệ thống: ▪ Batch ▪ Single/multi-user ▪ time-shared ▪ Distributed ▪ Real-time ▪  Góc độ người dùng  Góc độ hệ thống  Cơ chế và chính sách (how – what)  Cài đặt  ASM, C, C++, .  Quản lý tài nguyên là vai trò quan trọng nhất của HĐH, do đó cần có một số thành phần quản lý CPU, quản lý bộ nhớ,  CPU : quản lý tiến trình(bao gồm quản lý CPU)  RAM : quản lý bộ nhớ chính  Input/Output : quản lý nhập/xuất (thấy rõ ở DOS)  Hệ thống tập tin : Quản lý tập tin Hệ thống bảo vệ Quản lý mạng Shell (giao tiếp người dùng) 01/2009 KHOA CNTT - ĐH KHTN TP.HCM 17  Thế hệ thứ 1:  Vacuum tube  Plug board  Tại 1 thời điểm: 1 công việc  Vấn đề: lãng phí  Thế hệ thứ 2:  Transistors  Batch system  Sử dụng cơ chế spooling (thực hiện đồng thời nhiều thao tác của 1 công việc)  Sử dụng CPU tốt hơn, nhưng vẫn thực thi 1 công việc tại 1 thời điểm 1945 1955 1965 1980 Thế hệ 1st Thế hệ 2nd Thế hệ 3rd Thế hệ 4th  Thế hệ thứ 3:  Integrated circuits (ICs)  Đa nhiệm (multiprogramming)  Chia sẻ thời gian: thực thi nhiều công việc cùng 1 lúc  Thế hệ thứ 4:  Thể thống nhất lớn  Dùng cho PC  Thế hệ tiếp theo:  Hệ thống kết nối thông qua mạng???  Quản lý tài nguyên trên diện rộng???  Một số loại HĐH hiện đại  Mainframe: MVS  Server: Solaris, FreeBSD  Multiprocessor: Cellular IRIX  PC: Windows, Unix  Thời gian thực (real-time): VxWorks  Hệ điều hành nhúng  Hệ điều hành card thông minh (smart card)  Windows  Unix/Linux  Phát triển bởi Microsoft.  Hiện đang chiếm 80%  90% thị trường HĐH.  Số lượng dòng mã chương trình:  WinNT: 4 triệu  Win2000: 35 triệu  WinXP: 40 triệu  Windows 1.0 – Phát hành 12/1985  Windows 2.0  Phát hành 1987  Chỉ hỗ trợ bộ vi xử lý Intel 8086 hoặc 8088  Có thể truy cập 1MB bộ nhớ  Windows 3.0  Phát hành 05/1990  Có thể truy cập 16MB bộ nhớ  Windows 3.1  Phát hành 04/1992  Hỗ trợ TrueType fonts/ Multimedia  Windows NT  Phát hành 07/1993  Hỗ trợ chíp Intel 386, 486 và các chíp khác không của Pentium  Là hệ điều hành dòng server đầu tiên  Là HĐH đầu tiên hỗ trợ các ỨD 32 bits  Windows 95  Phát hành 08/1995  Cũng hỗ trợ các ứng dụng 32-bit (nhưng vẫn tương thích với các ƯD 16 bits  Windows 98  Phát hành 06/1998  Tăng cường về mặt hiệu năng và hỗ trợ phần cứng tốt hơn  Tích hợp các tính năng Internet  Windows Millennium  Phát hành 12/2000  Là phiên bản desktop hỗ trợ tốt multimedia.  Windows 2000  Phát hành 01/2000  Hỗ trợ tính đa xử lý đối xứng : 2-32 CPU.  Hỗ trợ đầy đủ tính năng đa ngôn ngữ (UNICODE)  Tính hợp đầy đủ các chồng giao thức mạng thông dụng  Thuộc dòng HĐH server chuyên dụng.  Các dòng sản phẩm: Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, Windows 2000 Datacenter Server  Windows server 2003  Phát hành 4/2003  Hiệu năng (performance) của các dịch vụ nhanh hơn Win2k  Phiên bản: web, standard, enterprise, datacenter, small business server, storage server  Windows Vista  Phát hành: 11/2006  Hỗ trợ về giao diện và multimedia  Phiên bản: Home Basic, Home Premium, Business, Enterprise, Ultimate  Windows 2008 server  Phát hành: 02/2008  Windows 7:  Phát hành: 10/2009  Windows 8:  Phát hành: 10/2012  Là HĐH mã nguồn mở  Linux là HĐH tương tự Unix.  Bao gồm khoảng 6 triệu dòng mã (kernel v2.6)  Tăng trưởng khoảng 25%/năm từ năm 2003  Chiếm khoảng 10% thị trường HĐH.  1969: UNIX, Thompson & Ritchie (AT&T Bell Lab)  1987: Minix, Andy Tanenbaum  1991: birth of Linux  Minix-like OS by Linus Torvard  limited devices, no networking  1994: Linux 1.0  only single-processor i386  networking (Internet)  enhanced file system (ext2)  1995: Linux 1.2  more hardware  8086 mode (DOS emulation) included  Support other architecture:Sparc, Alpha, MIPS  1996: Linux 2.0  multiple architectures, multiple processors  threads, memory management  1999: Linux 2.2  2001: Linux 2.4  ISA PnP, USB,  12/2003: Linux 2.6  Các dòng:  Mandrake  Fedora/Redhat  Debian  SUSE  Gentoo  Ubuntu   Hệ thống máy tính có thể được chia thành bốn thành phần:  phần cứng,  hệ điều hành,  các chương trình ứng dụng và chương trình hệ thống ngoài hệ điều hành,  người dùng. 31  Hệ điều hành là một bộ chương trình liên quan mật thiết đến phần cứng, có các chức năng chủ yếu sau :  Cung cấp môi trường làm việc cho phép người dùng thực hiện và phát triển các chương trình máy tính một cách thuận tiện, hiệu quả.  Phân bổ tài nguyên máy tính cho các chương trình và người dùng đang hoạt động một cách công bằng và hiệu quả nhất.  Điều khiển, giám sát các thiết bị I/O và các chương trình người dùng, đảm bảo an ninh hệ thống. 32  Hệ thống máy tính đa năng hiện đại bao gồm một hay nhiều CPU và một số thiết bị khác.  Chúng được kết nối với nhau thông qua một bus chung, cung cấp việc truy cập bộ nhớ chia sẻ.  Mỗi loại hình cụ thể của thiết bị có một bộ điều khiển thiết bị (device controler) chịu trách nhiệm điều khiển nó.  CPU và các bộ điều khiển thiết bị có thể hoạt động song song, cùng sử dụng chung bộ nhớ.  Để đảm bảo trật tự truy cập bộ nhớ chia sẻ, hệ thống máy tính cung cấp một bộ điều khiển bộ nhớ có chức năng đồng bộ hóa việc truy cập vào bộ nhớ. 33 34 CPUs vẫn sẽ nhàn rỗi mỗi khi chương trình thực thi cần giao tiếp với thiết bị ngoại vi  Đọc dữ liệu từ đĩa Hệ thống đa chương theo lô (Multiprogrammed batch systems) ra đời  Nạp nhiều chương trình vào đĩa cùng một thời gian (sau này là vào bộ nhớ)  Chuyển sang công việc kế tiếp nếu công việc hiện thời đang thực hiện lệnh I/O ▪ Thiết bị ngoại vi thường chậm hơn trên đĩa (hay bộ nhớ)  Đồng thời thực hiện I/O của chương trình này và tính toán cho chương trình khác  Thiết bị ngoại vi phải là bất đồng bộ  Phải biết khi nào công việc I/O xong: ngắt vs. polling Tăng khả năng phục vụ của hệ thống, có thể tốn nhiều thời gian hơn để phản hồi  Khi nào thì tốt cho thời gian phản hồi? Khi nào thì xấu cho thời gian phản hồi?  Vấn đề  Làm sao chia sẻ cùng một máy tính (lúc đó rất đắt) giữa nhiều người dùng và vẫn duy trì giao diện giao tiếp với người dùng?  Chia sẻ thời gian  Nối nhiều thiết bị đầu cuối đầu cuối đến một máy tính  Điều phối sử dụng máy tính cho nhiều người dùng  Chuyển đổi phục vụ giữa các chương trình người dùng sao cho đủ nhanh để người sử dụng có thể tương tác với chương trình trong khi chúng đang chạy (máy phải đủ nhanh để tạo cảm giác mỗi người dùng đang dùng máy riêng của mình) o Định thời công việc (job scheduling) o Quản lý bộ nhớ (Memory Management) ▪ Các công việc được hoán chuyển giữa bộ nhớ chính và đĩa ▪ Virtual memory: cho phép một công việc có thể được thực thi mà không cần phải nạp hoàn toàn vào bộ nhớ chính o Quản lý các process (Process Management) ▪ Định thời CPU (CPU scheduling) ▪ Đồng bộ các công việc (synchronization) ▪ Tương tác giữa các công việc ( process communication) ▪ Tránh Deadlock o Quản lý hệ thống file, hệ thống lưu trữ (disk management) o Phân bổ các thiết bị tài nguyên o Cơ chế bảo vệ (protection)  Đa chương tức là khả năng thực hiện nhiều chương trình cùng lúc. Lập trình đa chương cho phép tăng hiệu suất sử dụng CPU.  Trong hệ thống đa chương, khi công việc đang thực thi cần phải chờ đợi một sự kiện nào đó, hệ điều hành thực thi một công việc khác đang nằm trong bộ nhớ. Do vậy, khi có ít nhất một công việc cần phải thực thi, CPU không bao giờ nhàn rỗi.  Hệ thống đa chương cung cấp một môi trường trong đó các tài nguyên hệ thống khác nhau được sử dụng có hiệu quả, nhưng không cung cấp cho người dùng sự tương tác với hệ thống máy tính. 38  Trong hệ thống chia sẻ thời gian, CPU thực hiện nhiều công việc bằng cách chuyển đổi giữa chúng, các chuyển đổi xảy ra thường xuyên nên người dùng có thể tương tác với mỗi chương trình trong khi nó đang chạy.  Các vấn đề quan trọng trong hệ thống chia sẻ thời gian và đa chương là điều phối CPU, quản lý tiến trình, quản lý bộ nhớ, quản lý hệ thống file, v.v 39  Chế độ hoạt động kép: Để đảm bảo hệ điều hành chạy tốt, phải có khả năng phân biệt giữa việc thực thi mã lệnh của hệ điều hành và việc thực thi mã lệnh của người dùng. Do vậy cần hai chế độ riêng biệt của hoạt động: chế độ người dùng (user mode) và chế độ hạt nhân (kernel mode, còn gọi là chế độ giám sát, chế độ hệ thống, hoặc chế độ đặc quyền).  Timer: Bộ đếm thời gian được dùng để ngăn chặn một chương trình người dùng chạy quá lâu. 40 41  Cấu trúc đơn giản  Cấu trúc phân lớp  Cấu trúc máy ảo  Cấu trúc Modules 43 Thủ tục chính Thủ tục dịch vụ Thủ tục tiện ích  Ví dụ điển hình: HĐH MS-DOS  HĐH chỉ làm một số nhiệm vụ quản lý khá đơn giản và cung cấp thêm một số dịch vụ.  HĐH = Thư viện hàm.  Ứng dụng của người dùng vẫn có thể truy cập trực tiếp phần cứng thông qua BIOS, cổng phần cứng  Không hỗ trợ đa nhiệm.  Đánh giá: khi chương trình treo? Ứng dụng Hệ điều hành (DOS) Phần cứng (BIOS, port) Tiện ích thường trú Ví dụ với HĐH DOS  HĐH phân thành nhiều lớp. Mỗi lớp phụ trách 1 chức năng đặc thù.  Lớp bên trên sử dụng chức năng do các lớp bên dưới cung cấp. Lớp 5: Chương trình ứng dụng Lớp 4: Quản lý bộ đệm cho t/bị xuất nhập Lớp 3:Trình quản lý thao tác console Lớp 2: Quản lý bộ nhớ Lớp 1: Điều phối CPU Lớp 0: Phần cứng  Ưu điểm: ▪ đơn giản việc tìm lỗi và kiểm chứng hệ thống ▪ Đơn giản trong việc thiết kế và cài đặt  Khuyết điểm: ▪ Bao nhiêu lớp là đủ ?, thứ tự sắp xếp các lớp ? ▪ Kém hiệu quả do 1 lời gọi thủ tục có thể kích hoạt lan truyền các thủ tục ở các lớp bên trong => chi phí truyền thông số, chuyển đổi ngữ cảnh tăng 47  Có nghe đến máy ảo bao giờ? Ví dụ?  Do mục tiêu của HĐH là chạy được nhiều chương trình đồng thời trên một máy tính nên cách tốt nhất là tạo ra nhiều máy tính ảo từ một máy tính thật để các chương trình chạy riêng trên các máy ảo.  Về nguyên tắc các chương trình không biết mình đang chạy trên máy ảo, cũng không biết mình đang phải chia sẻ tài nguyên với các chương trình khác. Ví dụ:  CPU ảo: mỗi chương trình sở hữu một CPU ảo  Bộ nhớ ảo: mỗi chương trình một không gian nhớ riêng  Đa nhiệm và phân chia thời gian  Phân tách 2 chức năng của hđh: ▪ Cung cấp đa chương (multiprogramming) ▪ Cung cấp 1 máy tính mở rộng 48 49 Non-virtual Machine Virtual Machine 50 TTrình HĐH Phần cứng Phần cứng Máy ảo HĐH TTrình HĐH TTrình HĐH TTrình Giao diện lập trình  Ưu điểm:  Môi trường thuận lợi cho sự tương thích  Tăng tính an toàn cho hệ thống do các VM độc lập  Dễ phát triển các HĐH đơn nhiệm cho các VM độc lập.  Tài nguyên hệ thống được bảo vệ hoàn toàn  Phân tách đa chương và máy tính mở rộng  Khuyết điểm  Phức tạp trong việc giả lập phần cứng Core Solaris kernel Scheduling classesDevice & bus drivers Miscellaneous modules STREAM modules Executable formats Loadable system calls File systems Ví dụ kiến trúc của HĐH Solaris 53  Là tập các hàm cơ bản nhất của hệ điều hành để phục vụ các yêu cầu từ các chương trình người dung.  Lời gọi hệ thống cung cấp một giao diện cho các dịch vụ được cung cấp bởi hệ điều hành. Các chương trình người dùng sử dụng các dịch vụ của hệ điều hành thông qua giao diện là các lời gọi hệ thống. Các lời gọi hệ thống được viết bằng C, C + + hoặc hợp ngữ (Assembler). 54  Ví dụ, chuỗi các lời gọi hệ thống được thực hiện để sao chép nội dung của một tập tin sang một tập tin khác 55  Thông thường, chương trình người dùng không gọi trực tiếp các lời gọi hệ thống của hệ điều hành.  Hệ điều hành thường cung cấp bộ thư viện các hàm lập trình, chẳng hạn Win32 API, POSIX API (application programming interface), giúp việc lập trình dễ dàng hơn phải dùng các lời gọi hệ thống.  Tuy nhiên, thông thường người lập trình thường dùng các hàm thư viện của các ngôn ngữ lập trình như thư viện C, Java, (do dễ sử dụng hơn các hàm thư viện của hệ điều hành).  Cho dù là sử dụng hàm ngôn ngữ lập trình hay hàm thư viện hệ điều hành thì cuối cùng cũng sẽ chuyển thành các lời gọi hệ thống tương ứng. ReadFile() read() read()  điều khiển tiến trình,  quản lý tập tin,  quản lý thiết bị,  bảo trì thông tin,  truyền thông,  bảo vệ. 59  Quản lý bộ xử lý – Quản lý tiến trình  Quản lý bộ nhớ  Quản lý nhập xuất  Quản lý lưu trữ - Hệ thống tập tin  Hệ thống bảo vệ và bảo mậtCPU Memory memory bus I/O bus disk Net interface  Tiến trình là chương trình đang thực thi.  Một tiến trình cần sử dụng các tài nguyên: CPU, bộ nhớ, tập tin, thiết bị nhập xuất để hoàn tất công việc của nó  Hệ thống đa chương: sẽ có nhiều tiến trình chạy cùng lúc.  Số lượng tài nguyên << số lượng tiến trình chạy cùng lúc !!!  Tranh chấp  Vai trò của HĐH trong việc quản lý tiến trình  Tạo, hủy, tạm dừng và thực hiện tiếp tiến trình  Quản lý trạng thái các tiến trình  Điều phối tiến trình: FIFO, Round Robin, SJF,  Cung cấp cơ chế đồng bộ tiến trình ▪ Độc quyền truy xuất ▪ Phối hợp hoạt động  Cung cấp cơ chế kiểm soát deadlock  Cung cấp cách thức trao đổi thông tin giữa các tiến trình ▪ Chia sẻ tài nguyên dùng chung ▪ Trao đổi thông điệp  Mọi chương trình (mã nguồn + dữ liệu) cần được nạp vào bộ nhớ chính để thi hành  Nhiều tiến trình chạy đồng thời  Quản lý bộ nhớ sao cho tối ưu việc tận dụng CPU và đáp ứng kịp thời cho người sử dụng  Vai trò của HĐH trong việc quản lý bộ nhớ:  Tổ chức cấp phát, thu hồi bộ nhớ khi cần thiết ▪ Mô hình cấp phát (liên tục, không liên tục) ▪ Quản lý không gian địa chỉ của tiến trình  Quản lý bộ nhớ ảo ▪ Quyết định chương trình/ một phần chương trình nào được nạp vào/ ra bộ nhớ như thế nào  Hệ thống quản lý nhập xuất chịu trách nhiệm:  Tạo môi trường giao tiếp đơn giản, đồng nhất với các thiết bị nhập xuất ▪ Trình điều khiển thiết bị: che đi đặc thù phức tạp của các thiết bị nhập xuất đối với người sử dụng  Quản lý hiệu quả nhập xuất: ▪ Điều phối yêu cầu nhập xuất ▪ Tổ chức lưu trữ đệm (buffering, spooling,) ▪ Quản lý lỗi  Nhiều loại thiết bị lưu trữ đa dạng về tốc độ truy xuất, đơn vị lưu trữ, phương thức truy xuất (đĩa cứng, USB, CD,)  HĐH cung cấp cái nhìn logic và đồng nhất về việc lưu trữ thông tin – tập tin  Tập tin thường được tổ chức trong các thư mục  Vai trò HĐH trong việc quản lý tập tin:  Tổ chức tập tin, thư mục trên đĩa  Hỗ trợ các thao tác trên tập tin và thư mục  Quản lý quyền truy cập  Sao lưu dự phòng tập tin trên các thiết bị lưu trữ  Hệ thống máy tính luôn đứng trước các mối nguy cơ:  Khách quan: thiên tai, lỗi sử dụng, lỗi phần cứng, phần mềm.  Chủ quan: ▪ Tấn công phá hoại: virus, worm, DoS, ▪ Ăn cắp tài nguyên: trojan horses, trap doors, Man- in-the-middle,  Bảo vệ (protection) và Bảo mật (security):  Kiểm soát quá trình truy xuất tài nguyên của tiến trình/ người dùng  Phòng thủ, chống lại các tấn công  Một số cơ chế:  Hoạt động ở 2 chế độ (kernel mode vs. user mode)  Sao lưu dự phòng (Backup)  Xác thực người dùng (User Authentication)  Phân quyền (Authorization), chính sách bảo mật (Policy)  Kiểm soát nhật ký (Audit log) +,-,*,/ CPU 0 1 2 Bộ nhớ 3 4 5 7 6 8 9 8Bộ đếm CT (PC) Phép toán Phép logic ,!= Thanh ghi 0 Thanh ghi 1 Thanh ghi n  Bộ xử lý gồm: ALU, CU, Register  Quá trình bộ xử lý thực thi yêu cầu (dưới dạng các lệnh): lấy lệnh – giải mã – thực thi (fetch – decode – execute) 69 Power on Reboot Khởi tạo hệ thống CPU, device controller, main memory, load đoạn code khởi động hđh  Hệ điều hành nằm ở đâu ?  Làm sao để máy tính nạp và chạy HĐH lúc khởi động?  Quá trình để khởi động HĐH gọi là booting  Quá trình khởi động của các máy hiện đại gồm 3 giai đoạn  CPU thực thi lệnh từ địa chỉ cố định biết trước (boot ROM)  Firmware nạp boot loader  Boot loader nạp HĐH  (1) CPU thực thi lệnh từ địa chỉ biết trước trong bộ nhớ  Địa chỉ vùng nhớ này thường trỏ tới vùng nhớ chỉ đọc (ROM – read-only memory)  Với x86, địa chỉ này là 0xFFFF0, trỏ tới địa chỉ chương trình BIOS (basic input-output system) trong ROM  (2) ROM chứa mã nguồn “boot”  Loại phần mềm chỉ đọc này gọi là firmware  Với x86, chương trình BIOS thực hiện lần lượt các công việc: ▪ Kiểm tra cấu hình trong CMOS (complementary metal oxide semiconductor) ▪ Nạp trình quản lý ngắt (interrupt handler) và các trình điều khiển thiết bị ▪ Khởi tạo các thanh ghi và quản