แอปพลิเคชันถูกลบออกจาก RAM เมื่อปิดหรือไม่


2

ฉันสังเกตว่าเมื่อคุณเปิดโปรแกรมปิดแล้วเปิดอีกครั้งดูเหมือนว่าจะเปิดเร็วขึ้นเป็นครั้งที่สอง

นี่เป็นเพราะครั้งที่สองที่มี RAM อยู่แล้วหรือไม่

ฉันคิดว่าเมื่อโปรแกรมปิดลงพื้นที่หน่วยความจำจะถูกทำเครื่องหมายว่าไม่ได้ใช้ หากโปรแกรมนั้นเปิดขึ้นอีกครั้งก่อนที่จะใช้พื้นที่หน่วยความจำเก่าต้องโหลดโปรแกรมซ้ำทั้งหมดจากดิสก์หรือไม่


1
นี่คือความแตกต่างระหว่างหน่วยความจำที่ว่างและไม่ได้ใช้งาน ทั้งสองอย่างสามารถแล่นได้ตามต้องการ แต่อย่างหลังนั้นมีข้อมูลที่สามารถนำกลับมาใช้ใหม่ได้
Daniel Beck

1
คุณจะได้คำตอบที่คลุมเครือและขนนกเพราะคุณได้ถามคำถามที่คลุมเครือและขนนก คำตอบสำหรับคำถามนี้ขึ้นอยู่กับระบบปฏิบัติการ แต่คุณไม่ได้ระบุระบบปฏิบัติการ พฤติกรรมใน Unix แบบเก่าที่มีโปรแกรม "ข้อความเหนียว" นั้นแตกต่างจากพฤติกรรมใน Windows NT ซึ่งแตกต่างจากพฤติกรรมบน Linux ซึ่งแตกต่างจากพฤติกรรมใน BSDs และ MacOS ซึ่งแตกต่างจากพฤติกรรมบน Solaris - เพราะแคชและสถาปัตยกรรมการจัดการหน่วยความจำของพวกเขาล้วน แต่ละเอียดหรือแตกต่างจากกัน
JdeBP

@JdeBP จุดยุติธรรม ฉันเดาว่าฉันกำลังมองหาคำตอบของ OS 101 หรืออย่างน้อยก็มีความคิดบางอย่างที่ฉันไม่ได้พิจารณาเช่นการแคชดิสก์ที่ระบุด้านล่าง
คณบดี

คำตอบ:


1

โดยทั่วไปเมื่อแอปพลิเคชันปิด / ปิดที่เก็บข้อมูลที่ถูกครอบครองนั้นจะถูกปล่อยออกมาทันทีและหากคุณรีสตาร์ทแอปพลิเคชันแอปพลิเคชันนั้นจะถูกโหลดจากดิสก์อีกครั้งลงในที่จัดเก็บข้อมูล "ใหม่"

ข้อยกเว้นที่ใหญ่ที่สุดคือ "สมาร์ทโฟน" ซึ่งบางครั้งเมื่อคุณ "ยุติ" แอปพลิเคชันมันไม่ได้จบลงในทันที แต่เป็นเพียง "แบ็คกราวน์" เป็นระยะเวลาหนึ่งโดยสันนิษฐานว่าคุณอาจรีสตาร์ทในเวลาอันใกล้ อนาคต. แต่ถ้าคุณไม่ได้ใช้แอปพลิเคชั่นเป็นระยะเวลาหนึ่งมันจะสิ้นสุดลงในที่สุดโดยระบบปฏิบัติการและที่จัดเก็บข้อมูลคืน (เท่าที่ฉันรู้ว่ารูปแบบนี้ไม่ได้ใช้กับคอมพิวเตอร์ Microsoft หรือ Apple ปกติโทรศัพท์เท่านั้น)

อีกข้อยกเว้นทางเทคนิคอีกเล็กน้อยคือแม้ว่าโปรแกรมจะสิ้นสุดลงและที่เก็บข้อมูลถูกปล่อยออกมาอิมเมจดิสก์ของโปรแกรม (หรืออย่างน้อยก็ส่วนหนึ่ง) อาจยังคงอยู่ในดิสก์ "แคช" และอาจเข้าถึงได้ง่ายขึ้น ครั้งที่สองกว่าครั้งแรก นี่อาจเป็นสาเหตุของสิ่งที่คุณเห็นว่าเป็นการเริ่มต้นที่รวดเร็วยิ่งขึ้นในครั้งที่สอง

มีอีกเหตุผลที่ง่ายกว่าสำหรับการเริ่มต้นที่เร็วกว่านั้น เมื่อคุณจบแอปพลิเคชั่นแล้วรีสตาร์ททันทีจะมี "ช่อง" ที่สะดวกในการจัดเก็บที่เหมาะกับโปรแกรมของคุณ หากคุณเริ่มต้นในภายหลังหลังจากใช้งานสิ่งอื่น ๆ แล้วระบบปฏิบัติการจะต้องตรวจสอบพื้นที่เก็บข้อมูลที่มีอยู่และบ่อยครั้งก็หมายความว่าจะต้อง "กำจัดข้อมูล" ใน RAM ซึ่งเป็นกระบวนการที่ใช้เวลานาน


3
"โดยทั่วไปเมื่อแอปพลิเคชันปิด / ปิดที่เก็บข้อมูลที่ถูกครอบครองนั้นจะถูกปล่อยออกมาทันทีและหากคุณรีสตาร์ทแอปพลิเคชันมันจะถูกโหลดจากดิสก์อีกครั้งลงในที่เก็บข้อมูล" ใหม่ " สิ่งนี้ไม่จริงสำหรับระบบที่ทันสมัยใด ๆ ที่ใช้การจับคู่หน่วยความจำเพื่อโหลดไบนารีอย่างเกียจคร้าน
billc.cn

ซึ่งโดยทั่วไปจะเป็น "แคช" ของข้อมูลดิสก์ แต่โปรดทราบว่าการโหลดข้อความโปรแกรมจริงเป็นเพียงส่วนเล็ก ๆ ของการเตรียมโปรแกรมสำหรับการดำเนินการ การเชื่อมโยงไปยัง RTE และการเตรียมพื้นที่ข้อมูลเป็นส่วนที่ใหญ่กว่า
Daniel R Hicks

(แต่คุณถูกต้อง - ฉันลืมเกี่ยวกับคุณลักษณะเฉพาะนั้น)
Daniel R Hicks

@ ด่านสิ่งที่คุณกำลังพูดนั้นเป็นเท็จอย่างสมบูรณ์สำหรับระบบปฏิบัติการที่ทันสมัย และแน่นอนว่ามันเป็นวิธีที่โง่มากที่จะทำสิ่งต่างๆ เมื่อโปรแกรมโหลดคุณจะมีสำเนาของโปรแกรมสองชุดหนึ่งชุดทำงานและอีกหนึ่งชุดอยู่ในแคชดิสก์ซึ่งเป็นหน่วยความจำที่ไม่มีจุดหมายอย่างสมบูรณ์ บนระบบปฏิบัติการที่ทันสมัยไม่มีแคชดิสก์แยกส่วนหน่วยความจำกายภาพส่วนใหญ่เป็นแคชของหน้า
David Schwartz

ฉันเปิด Firefox โดยที่ไม่ต้องทำอะไรนอกจากปล่อยให้ไปที่หน้าแรก (Google) firefox.exe คือ 925K แต่มีขนาดเสมือน 269,000K และชุดการทำงานคือ 84,000K ดังนั้นข้อความโปรแกรมจริงจึงเป็นส่วนเล็ก ๆ ของความต้องการพื้นที่เก็บข้อมูลโดยรวม ในทำนองเดียวกันสำหรับ Solataire: exe - 859K, ขนาดเสมือน 183,000K, ชุดการทำงาน 47,000K
Daniel R Hicks

4

ไม่มีการใช้งานหรือไม่ได้ใช้งานมากขึ้นเมื่อเปิดโปรแกรมมากกว่าเมื่อปิดโปรแกรม หน่วยความจำจะใช้หากมีข้อมูลที่เป็นประโยชน์ มันมีข้อมูลที่เป็นประโยชน์ทั้งในขณะที่โปรแกรมกำลังทำงานและเมื่อโปรแกรมไม่ได้ทำงานอีกต่อไป

ในความเป็นจริงระบบปฏิบัติการส่วนใหญ่ไม่ได้พิจารณาว่าโปรแกรมนั้นทำงานอยู่หรือไม่ เหตุใดจึงต้องเก็บบางสิ่งไว้ในหน่วยความจำหากไม่สามารถเข้าถึงได้เพียงเพราะโปรแกรมกำลังทำงานอยู่ และทำไมต้องทิ้งบางสิ่งบางอย่างจากหน่วยความจำเพียงเพราะไม่มีโปรแกรมที่ทำงานอยู่ในทันทีที่ใช้งานอยู่

ระบบปฏิบัติการสามารถเข้าถึงข้อมูลได้ แน่นอนว่าหน่วยความจำที่เก็บข้อมูลที่ไม่สามารถเข้าถึงได้นั้นถือว่าฟรี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.