Hệ điều hành máy tính làm việc như thế nào? Nếu bạn có máy tính thì chắc hẳn bạn đã nghe về hệ điều hành. Bất kì máy tính để bàn hay máy tính xách tay nào mà bạn mua thường được tải trước Window XP. Khi ta hiểu Hệ điều hành hoạt động như thế nào ta sẽ chủ động biết được sự cố, nguyên nhân của sự cố để khắc phục sự cố và biết cách bảo trì..... Trân trọng giới thiệu cùng quý vị!
Trang 1Hệ điều hành
máy tính làm việc như thế
nào?
Nếu bạn có máy tính thì chắc hẳn bạn
đã nghe về hệ điều hành Bất kì máy tính để bàn hay máy tính xách tay nào mà bạn mua thường được tải trước Window XP.
I Giới thiệu
Trang 2Nếu bạn có máy tính thì chắc hẳn bạn đã nghe về hệ điều hành Bất kì máy tính để bàn hay máy tính xách tay nào mà bạn mua thường được tải trước Window XP Máy tính Macintosh thì thường được tải trước OS X Nhiều máy chủ liên kết sử dụng hệ điều hành Linux hay UNIX Hệ điều hành (OS) là thứ đầu tiên phải tải về máy- không có hệ điều hành thì máy tính vô dụng Gần đây, hệ điều hành đã bắt đầu xuất hiện ở các máy tính nhỏ hơn Nếu bạn muốn tìm hiểu các thiết bị điện tử thì bạn có thể phát hiện ra hệ điều hành ở nhiều thiết bị mà chúng ta vẫn sử dụng hàng ngày từ điện thoại di động cho đến các thiết bị truy cập không dây khác Máy tính được dùng bây giờ không cần nhiều đến sức mạnh vẫn có thể chạy một hệ điều hành và các ứng dụng Máy tính trong điện thoại di động hiện đại có thể mạnh hơn máy tính để bàn 20 năm trước vì vậy những tiến bộ này là sự phát triển tự nhiên Trong bất cứ thiết bị nào có hệ điều hành thì cũng thường có cách để thay đổi cách thức thiết bị làm việc Đây không phải là sự tình cờ ngẫu nhiên; một trong những nguyên nhân hệ điều hành được tạo đó là những đoạn mã chương trình chứ không phải là mạch điện vật lý cố định và chúng có thể được thay đổi hoặc sửa chữa mà không làm ảnh hưởng đến toàn thiết bị.
Trang 3Đối với người sử dụng máy tính để bàn điều này có nghĩa là bạn
có thể thêm phần mềm bảo mật cập nhật, bản vá lỗi hệ thống, các ứng dụng mới hay thậm chí là một hệ điều hành hoàn toàn mới mà không phải bỏ máy tính đi và bắt đầu với một máy mới khi bạn muốn thay đổi Khi bạn hiểu hệ điều hành làm việc như thế nào và kiểm soát nó thì trong nhiều trường hợp bạn có thể thay đổi cách mà nó làm việc Và điện thoại di động thì cũng như máy tính của bạn
Công việc của hệ điều hành là tổ chức và kiểm soát phần cứng
và phần mềm để thiết bị chứa hệ điều hành này có thể hoạt động linh hoạt nhưng vẫn dự đoán được Trong bài này chúng tôi sẽ nói cho bạn biết các phần mềm cần có trong hệ điều hành, hệ điều hành làm việc như thế nào trong máy tính để bàn của bạn
và dẫn ra một vài ví dụ làm thế nào để kiểm soát các hệ điều hành khác
II Bản chất của vấn đề
Trang 4Không phải tất cả các máy tính đều có hệ điều hành Máy tính điều khiển lò vi sóng trong bếp của bạn là một ví dụ không cần đến hệ điều hành.Nó chỉ có các nhiệm vụ cài sẵn, nhập vào trực tiếp và đơn giản ( với các phím số và nút ) không cần thay đổi phần cứng để điều khiển Đối với máy tính cũng như vậy thì mà không dùng hệ điều hành chỉ làm cho chi phí phát triển và sản xuất phần cứng cao hơn và làm cho thiết bị phức tạp thêm mà không cần thiết Thay vào đó, máy tính trong lò vi sóng chỉ cần chạy chương trình đơn giản và không thay đổi
Đối với các thiết bị khác, hệ điều hành được dùng để:
• Phục vụ những mục đích khác nhau
• Tương tác với người sử dụng theo những cách phức tạp hơn
• Theo kịp nhu cầu thay đổi theo thời gian
Tất cả các máy tính để bàn đều có hệ điều hành Hệ điều hành phổ biến là gia đình hệ điều hành Window được phát triển bởi hãng Microsoft, hệ điều hành Macintosh phát triển bởi Apple và gia đình hệ điều hành UNIX( được phát triển bởi các cá nhân, tập đoàn và cộng tác viên) Có hàng trăm hệ điều hành phù hợp
Trang 5với các ứng dụng có mục đích đặc biệt bao gồm chuyên môn hoá cho máy tính lớn, robot, sản xuất , hệ thống kiểm soát thời gian thực…
Hệ điều hành làm những gì?
Ở mức độ đơn giản nhất, hệ điều hành làm hai việc:
1 Nó quản lý tài nguyên phần cứng và phần mềm của hệ thống Trong máy tính cá nhân, những tài nguyên này bao gồm bộ xử lý, bộ nhớ, khoảng trống trên đĩa,…( trong điện thoại di động chúng bao gồm phím số, màn hình, sổ địa chỉ, quay số điện thoại, pin và kết nối mạng.)
1 Nó cung cấp cách ổn định và phù hợp cho các ứng dụng xử
lý phần cứng mà không cần biết tất cả các chi tiết của phần cứng
Nhiệm vụ thứ nhất, quản lý tài nguyên phần cứng và phần mềm,
là rất quan trọng , các chương trình khác nhau và cách nhập dữ liệu khác nhau cạnh tranh để có được sự điều khiển của CPU và đưa ra những yêu cầu về bộ nhớ, lưu trữ và dải thông hệ thống vào ra ( I/O ) vì những mục đích riêng Với những công việc trên, hệ điều hành đóng vai trò như những bậc cha mẹ tốt đảm
Trang 6bảo mỗi ứng dụng có được tài nguyên cần thiết trong khi vẫn chạy các ứng dụng khác, cũng như khéo léo sử dụng các khả năng hạn chế của hệ thống ở mức tốt nhất cho tất cả người sử dụng và những ứng dụng.
Nhiệm vụ thứ hai , cung cấp giao diện ứng dụng thích hợp , là đặc biệt quan trọng nếu có nhiều hơn một loại máy tính sử dụng
hệ điều hành hoặc nếu phần cứng tạo nên máy tính thay đổi Một
hệ giao chương trình ứng dụng (API) thích hợp cho phép nhà phát triển phần mềm viết ứng dụng trên một máy tính và có độ tương thích cao để chạy trên máy tính khác cùng loại, thậm chí nếu dung lượng bộ nhớ hay dung lượng lưu trữ của hai máy khác nhau
Thậm chí nếu một máy tính cá biệt là độc nhất thì hệ điều hành
có thể đảm bảo rằng các ứng dụng có thể tiếp tục chạy khi nâng cấp phần cứng và cập nhật Bởi vì hệ điều hành chứ không phải các ứng dụng chịu trách nhiệm quản lý phần cứng và phân phối các tài nguyên Một trong những thách thức mà nhà phát triển phải đối mặt đó là giữ cho hệ điều hành đủ linh hoạt để chạy phần cứng trong số hàng nghìn các nhà cung cấp sản xuất thiết
bị máy tính Hệ thống ngày nay có thể thích nghi với hàng nghìn
Trang 7máy in khác nhau, ổ đĩa và các thiết bị ngoại vi đặc biệt trong bất kì liên kết nào
IV Phân loại hệ điều hành
Trong đại gia đình hệ điều hành nhìn chung có 4 loại được phân loại dựa trên loại máy tính mà nó điều khiển và loại ứng dụng
mà nó hỗ trợ Bao gồm các loại sau:
• Hệ điều hành thời gian thực (RTOS)- Hệ điều hành thời gian thực được dùng để điều khiển máy, các thiết bị khoa học và
hệ thống công nghiệp Một RTOS điển hình có rất ít khả năng giao diện cho người sử dụng và không có những ứng dụng thông thường vì hệ thống chỉ là một cái hộp đóng kín Một nhiệm vụ quan trọng của RTOS là quản lý tài nguyên của máy tính để một quá trình hoạt động có thể diễn ra trong khoảng thời gian chính xác mỗi khi nó xuất hiện Trong máy phức tạp, có phần chuyển động nhanh thì hệ thống tài nguyên phải luôn luôn sẵn sàng , nó
sẽ là thảm hoạ nếu không chuyển động vì một nguyên nhân nào
đó hệ thống bị bận
• Một người sử dụng, đơn nhiệm- Như cái tên của nó, hệ điều hành này được thiết kế để quản lý máy tính sao cho một người sử dụng có thể làm một việc hiệu quả một lúc Hệ điều
Trang 8hành Palm cho các máy tính cầm tay là một ví dụ cho hệ điều hành một người sử dụng, đơn nhiệm
• Một người sử dụng, đa nhiệm- Đây là hệ điều hành mà hầu hết mọi người sử dụng trong máy tính để bàn và máy tính xách tay hiện nay Window của Microsoft và nền tảng MacOS của Apple là hai ví dụ cho hệ điều hành cho phép một người sử dụng chạy nhiều chương trình cùng một lúc Ví dụ như nó cho phép người sử dụng Window ghi chép trong bộ xử lý word trong khi tải một file từ Internet và in một văn bản của tin nhắn e-mail
• Nhiều người sử dụng- Một hệ điều hành nhiều người sử dụng cho phép nhiều người sử dụng khác nhau dùng tài nguyên của máy tính cùng một lúc Hệ điều hành phải đảm bảo rằng yêu cầu của những người sử dụng khác nhau được cân bằng, và mỗi chương trình mà họ sử dụng có tài nguyên riêng và đầy đủ để vấn đề của mỗi người sử dụng không ảnh hưởng đến cộng đồng người sử dụng Hệ điều hành Unix, VMS và Mainframe như MVS là những ví dụ cho hệ điều hành nhiều người sử dụng
Trang 9Việc phân biệt giữa hệ điều hành nhiều người sử dụng và hệ điều hành một người sử dụng hỗ trợ mạng là rất quan trọng Window 2000 và Novell Netware có thể hỗ trợ hàng trăm hoặc hàng nghìn người sử dụng mạng nhưng hệ điều hành của chúng không thực sự là hệ điều hành nhiều người sử dụng Nhà quản trị hệ thống là người sử dụng duy nhất Window2000 hay Netware Hệ điều hành này phải hỗ trợ các ứng dụng trên mạng
và cho phép người sử dụng từ xa đăng nhập mạng và chúng được người quản trị mạng cho phép sử dụng
Với nhiều loại hệ điều hành khác nhau đã đến lúc xem xét các chức năng cơ bản mà hệ điều hành cung cấp
Trang 10V Gọi hệ điều hành để chạy
Khi bạn bật máy tính, chương trình đầu tiên mà máy tính chạy
thường là một tập hợp chỉ dẫn được lưu trong bộ nhớ chỉ đọc ra (ROM) của máy tính Mã này kiểm tra hệ thống phần cứng để đảm bảo rằng mọi thứ đang hoạt động phù hợp Tự kiểm tra khi bật máy (POST) này kiểm tra lỗi của CPU, bộ nhớ và hệ thống vào ra cơ bản để tìm lỗi sau đó lưu kết quả tại một vị trí bộ nhớ cho trước Khi POST đã hoàn tất thì phần mềm được tải trong ROM ( hoặc được gọi là BIOS hay Firmware) sẽ bắt đầu kích hoạt ổ đĩa cứng của máy tính Trong hầu hết các máy tính hiện nay, khi máy tính kích hoạt ổ đĩa cứng nó sẽ gặp phần đầu tiên của hệ điều hành : Bootstrap Loader
Bootstrap Loader là một chương trình nhỏ có một chức năng duy nhất là tải hệ điều hành vào trong bộ nhớ và cho phép nó bắt đầu hoạt động Theo hình thức cơ bản nhất thì Bootstrap Loader thiết lập chương trình nhỏ điều khiển các phần cứng khác nhau của máy tính Nó cài đặt các phần bộ nhớ nắm giữ hệ điều hành, thông tin người sử dụng và các ứng dụng Nó thiết lập cấu trúc
dữ liệu chứa vô số tín hiệu, cờ … được dùng để kết nối giữa các
Trang 11hệ thống nhỏ và các ứng dụng của máy tính Sau đó chuyển quyền điều khiển máy tính cho hệ điều hành.
Hệ điều hành có 6 nhiệm vụ cơ bản:
Trang 12Trong khi có một số cho rằng hệ điều hành nên có thêm các nhiệm vụ và một số nhà cung cấp hệ điều hành xây dựng thêm nhiều chương trình thiết thực và các chức năng bổ sung cho hệ điều hành thì sáu nhiệm vụ này vẫn là cốt lõi của gần như tất cả các hệ điều hành Hãy xem các công cụ mà hệ điều hành dùng
để thực hiện các chức năng này
VI Quản lý bộ vi xử lý
Quản lý bộ xử lý liên quan đến hai vấn đề chính:
• Đảm bảo rằng mỗi quá trình và ứng dụng nhận được đủ thời gian của bộ xử lý để thực hiệc các chức năng phù hợp
• Sử dụng bao nhiêu chu kì lệnh bộ vi xử lý cho công việc thực sự là thích hợp
Đơn vị cơ bản của phần mềm mà hệ điều hành phân phối theo một kế hoạch được thực hiện bởi CPU gọi là Process hoặc Thread , phụ thuộc vào hệ điều hành
Điều này có thể khiến mọi người nghĩ Process là một chương trình ứng dụng nhưng đó là bức tranh chưa đầy đủ về mối quan
hệ của các Processvới hệ điều hành và phần cứng Ứng dụng như bạn có thể thấy ( xử lý word, bảng tính hay game) thì thực
sự là một Process , nhưng chương trình ứng dụng có thể cần vài
Trang 13Process khác để bắt đầu thực hiện Có rất nhiều Process có thể chạy ngầm mà không cần thể hiện cho bạn nhận thấy sự tồn tại của nó Ví dụ như Window XP hay UNIX có thể có hàng tá Process chạy để điều khiển mạng, quản lý bộ nhớ, quản lý đĩa, kiểm tra virut…
Process là phần mềm thực hiện một vài hành động nào đó và có thể được kiểm soát bởi người sử dụng, bởi các chương trình ứng dụng khác hoặc bởi chính hệ điều hành
Những chương trình ứng dụng là những Process mà hệ điều hành điều khiển và lên kế hoạch để CPU thực hiện Trong hệ thống Đơn nhiệm ( Single-Tasking) kế hoạch làm việc đơn giản Hệ điều hành cho phép chương trình ứng dụng để bắt đầu chạy , tạm dừng bằng những ngắt ( Interrupt ) và đầu vào từ người dùng
Interrupt là tín hiệu đặc biệt mà phần cứng hoặc phần mềm gửi tới CPU Việc này xảy ra khi một phần nào đó của máy tính yêu cầu sự chú ý của CPU với một sự kiện bất ngờ xảy ra Đôi khi
hệ điều hành sẽ lập mức độ ưu tiên cho các Process để các ngắt
Trang 14được che đi ( Mask ) có nghĩa là hệ điều hành sẽ phớt lờ Interrupt từ một số nguồn để các công việc đang làm hoàn tất càng nhanh càng tốt Có một số Interrupt như khi báo lỗi hoặc vấn đề với bộ nhớ có thể quan trọng đến nỗi không thể phớt lờ Những ngắt không thể chờ được ( Non-Mask , NMI ) này phải được xử lý ngay lập tức bất chấp nhiệm vụ khác đang được thực hiện
Trong khi các Interrupt khiến cho việc thực hiện các Process trong hệ thống đơn nhiệm phức tạp thêm thì công việc của hệ điều hành trở nên phức tạp hơn trong hệ đa nhiệm Hiện tại hệ điều hành phải sắp xếp việc thực hiện các ứng dụng để bạn tin rằng có nhiều việc xảy ra cùng một lúc Điều này phức tạp bởi vì CPU chỉ có thể làm một việc tại một điểm thời gian Để đưa ra diện mạo của các việc diễn ra cùng một lúc, hệ điều hành phải chuyển đổi các Process khác nhau hàng nghìn lần một giây Quá trình như sau:
• Một Process chiếm giữ một số lượng nhất định trong RAM
Nó cũng dùng các thanh ghi, ngăn xếp và hàng đợi trong CPU
và không gian bộ nhớ của hệ điều hành
Trang 15• Khi hai Process là đa nhiệm thì hệ điều hành phân công một chu kì thực hiện lệnh CPU nhất định đến một chương trình.
• Sau chu kì thực hiện lệnh CPU đó hệ điều hành copy tất cả các thanh ghi, ngăn xếp và hàng đợi của Process và ghi các điểm
mà tại đó Process tạm dừng hoạt động
• Sau đó nó tải tất cả các thanh ghi, ngăn xếp và hàng đợi được sử dụng bởi Process thứ hai và cho phép một số chu kì thực hiện lệnh CPU nhất định tiếp theo
• Khi tất cả hoàn tất, nó copy tất cả các thanh ghi, ngăn xếp
và hàng đợi được sử dụng bởi chương trình thứ hai và tải chương trình thứ nhất
Hình trên mô tả quá trình làm việc của hệ điều hành đa nhiệm
Tất cả các thông tin cần để giữ dấu vết của Process khi chuyển đổi được lưu trong một gói tin dữ liệu được gọi là khối điều khiển Process Khối điều khiển Process này chứa:
• Số ID để xác thực Process
Trang 16• Con trỏ đến vị trí trong chương trình và dữ liệu nơi xử lý cuối cùng xuất hiện
• Nội dung thanh ghi
• Trạng thái của các cờ và điểm chuyển đổi
• Những con trỏ đến đường biên trên và dưới của bộ nhớ được yêu cầu cho Process
• Danh sách các file được mở bởi Process
• Ưu tiên của Process
• Trạng thái của thiết bị vào ra mà Process cần tới
Mỗi Process có trạng thái liên quan với nó Nhiều quá trình không tiêu tốn thời gian của CPU cho đến khi nó nhận được dữ liệu nhập vào Ví dụ một quá trình có thể chờ người sử dụng nhập dữ liệu vào Trong khi nó chờ đợi thì nó không tiêu tốn thời gian CPU mà nó chuyển sang trạng thái treo để lúc này CPU được chuyển đi làm Process khác Khi dữ liệu được nhập vào thì hệ điều hành thay đổi trạng thái Khi trạng thái của Process thay đổi từ trạng thái treo sang hoạt động, thông tin trong khối xử lý Process phải được dùng như dữ liệu trong bất kì
Trang 17chương trình nào khác để thực hiện chuyển đổi nhiệm vụ của hệ điều hành
Việc chuyển đổi quá trình đó diễn ra mà không có sự can thiệp trực tiếp nào của người sử dụng và mỗi Process nhận được đủ chu kì thực hiện lệnh để phù hợp với nhiệm vụ trong khoảng thời gian thích hợp Vấn đề có thể xảy ra do người sử dụng cố gắng thực hiện quá nhiều Process cùng một lúc Hệ điều hành tự
nó yêu cầu một số chu kì CPU để thực hiện lệnh lưu giữ và chuyển đổi tất cả các thanh ghi, hàng đợi và ngăn xếp của những Process ứng dụng Nếu có nhiều Process ở mức nào đó được khởi động và nếu hệ điều hành không được thiết kế cẩn thận thì
hệ thống có thể bắt đầu sử dụng phần lớn các chu kì lệnh của CPU để thực hiện việc chuyển đổi giữa các Process hơn là chạy chúng Khi điều này xảy ra, nó được gọi là sự thảm bại ( Thrashing ) và nó thường yêu cầu một số sự can thiệp trực tiếp của người sử dụng để dừng những Process và lập lại trật tự cho
hệ thống
Một cách mà nhà thiết kế hệ điều hành dùng để giảm thiểu cơ hội Thrashing là giảm nhu cầu những Process mới để thực hiện các nhiệm vụ khác nhau Một số hệ điều hành cho phép khái