Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V2
Login / opret bruger

Hvordan bliver ændringer skrevet på HDD platter?

Af Ny på siden EmilFrederiksen | 07-07-2018 00:44 | 1236 visninger | 19 svar, hop til seneste
Kære alle Jeg er vil gerne vide, hvordan ændringer I en png fil bliver skrevet på en hdd platter. Bliver hele filen skrevet igen (hele billedet man har tegnet), eller er det kun ændringerne til filen der bliver skrevet? Skriver skrive-hovedet kun ændringer i de forskellige bytes, eller skriver hovedet alle bytes igen? For eksempel: Original fil: 00001111 00001111 00001111 Ændrede fil: 00001111 00001111 0000000 Når jeg trykker gem, skriver den så alle tre bytes igen, eller skriver den kun den tredje og sidste byte? Lad os sige at jeg har tegnet en abe og gemmer. Åbner derefter filen, tegner en banan i abens hånd og trykker gem. Skriver hovedet så aben og bananen, eller kun bananen? Når man åbner en fil, så laver den en buffer, når man gemmer, erstatter bufferen så hele den oprindelige fil eller kun de ændringer man laver? Håber det giver mening Håber meget at I kan give mig en afklaring Stor tak på forhånd Med venlig hilsen Emil
--
#1
Chucara
Maxi Nørd
07-07-2018 01:22

Rapporter til Admin
Det er et forholdsvist kompliceret spørgsmål. Lige præcis med png, afhænger hver pixel af de foregående, så hvis man opdaterer en af de første pixels, vil man blive nødt til at genskrive alt. Læs mere her: https://medium.com[...] I praksis ville jeg antage, at hele filen bliver skrevet igen i alle tilfælde. Men det er op til hvert enkelt program at beslutte.
--
ASUS Z270 TUF Mk1 | 7700K | GTX 1080TI | 32GB 3000MHz | Fractal Define R5 | Samsung 960 EVO 1TB | PG279Q | 2xU2715H
#2
ToFFo
Guru
07-07-2018 01:26

Rapporter til Admin
Jeg forestiller mig det er sådan her... Når man åbner en fil for at redigere i den, bliver der lavet en midlertidig fil. Når man er færdig med at redigere, bliver den originale fil erstattet med den midlertidige fil såfremt der er ændringer i filen. Jeg tror det vil sløve systemet ned, hvis systemet skal fjerne et 1 her og tilføje et 0 der i en lang række af 0'er og 1'ere. Så er det hurtigere bare at erstatte hele lortet.
--
- Indsæt signatur -
#3
Chucara
Maxi Nørd
07-07-2018 01:36

Rapporter til Admin
#2: Der er flere ting i den. Hvis vi skal helt ned og snakke 0 og 1, så ved harddisken intet om filer. Det er filsystemet - harddisken opererer i sectors og blocks. Uden at være hardware mand, vil jeg gætte på at disken ikke læser om det er nødvendigt at opdatere, da det kun ville sløve skrivningen. Det, der tager tiden ved en skrivning er søgetid og rotation. Hvis vi ser bort fra søgetiden, vil en læsning blot gøre, at disken skal bruge længere tid samme sted. Hvor imod en overskrivning med samme værdi ikke har nævneværdige ulemper.
--
ASUS Z270 TUF Mk1 | 7700K | GTX 1080TI | 32GB 3000MHz | Fractal Define R5 | Samsung 960 EVO 1TB | PG279Q | 2xU2715H
#4
EmilFrederiksen
Ny på siden
07-07-2018 12:56

Rapporter til Admin
Mange tak for de svar der er kommet indtil videre I kan derfor begge med stor sikkerhed sige, at hele filen bliver erstattet når man gemmer sine ændringer? Jeg læste artikelen fra linket, men synes ikke jeg kom frem til en nærmere afklaring - dog meget interessant læsning!
--
Sidst redigeret 07-07-2018 12:57
#5
NitroBlast
Guru
07-07-2018 13:24

Rapporter til Admin
En disk er inddelt i sektorer, og disse er normalt 512 bytes, hvilket dermed er det absolutte minimum, der kan overføres til/fra platters. De fleste nyere filsystemer inddeler endvidere sektorer i blokke på hver 4KiB, og dette er så det absolutte minimum, der kan overføres. Mange programmer benytter (via filsystemet) særlige midlertidige filer, hvor der ved hjælp af en journal holdes styr på hvilke sektorer, der rent faktisk ændres, og dette gør det så muligt, kun at skrive sektorer, der rent faktisk skal skrives. SSD'er fungerer væsentligt anderledes end HDD'er, og derfor gælder ovenstående ikke for SSD'er.
--
http://xlinx.dk[...] i7 2600K, 16GB PC3-12800, GA-X68XP-UD4 R1, GTX 560Ti HAWK, 250GB 840 EVO
#6
EmilFrederiksen
Ny på siden
07-07-2018 13:33

Rapporter til Admin
Endvidere, når man åbner en fil, den buffer der bliver lavet som man ser på, hvis man trykker "gem", UDEN at ændre noget, bliver den originale fil så overskrevet og erstattet? Eller sker det kun, hvis man faktisk ændrer noget? Mange tak på forhånd
--
Sidst redigeret 07-07-2018 13:33
#7
EmilFrederiksen
Ny på siden
07-07-2018 13:35

Rapporter til Admin
#5 Hej Nitroblast Vil du venligst uddybe, således jeg forstår hvad det har af relation til mine stilede spørgsmål? mange tak
--
#8
NitroBlast
Guru
07-07-2018 13:44

Rapporter til Admin
#7 En HDD er fysisk ude af stand til at skrive enheder mindre end sektorstørrelsen. Derfor er det ikke muligt at skrive 1 byte, springe to andre bytes over, for så at skrive en byte igen. Derfor vil alle bytes i dit eksempel skulle genskrives. Ved små filer genskrives normalt hele indholdet, ved store filer (eks. databaser) genskriver man normalt kun blokke, der er ændrede, og man holder styr på ændringer ved hjælp af en journal. Prøv at søge lidt på "journaling file system", eller kig her: https://en.wikipedia.org[...]
--
http://xlinx.dk[...] i7 2600K, 16GB PC3-12800, GA-X68XP-UD4 R1, GTX 560Ti HAWK, 250GB 840 EVO
--
Sidst redigeret 07-07-2018 13:44
#9
TommyB
Junior Nørd
07-07-2018 22:24

Rapporter til Admin
Moderne filsystemer er COW ... Kort fortalt skriver den en helt ny fil og retter i MFT til sidst. Aka: hele filen skrives påny.
--
Indholdet af dette indlæg er blevet redigeret af NSA.
#10
EmilFrederiksen
Ny på siden
08-07-2018 10:42

Rapporter til Admin
Endnu en stor tak til alle besvarelser Er der nogen med en afklaring til #6 ? Bliver filen skrevet eller overskrevet igen, hver gang man trykker gem, uanset om der faktisk er lavet ændringer?
--
#11
Chucara
Maxi Nørd
08-07-2018 10:51

Rapporter til Admin
#10: Det er er ingen, der kan svare på, da hvert program kan gøre det på hvor sin måde. Jeg ved ikke hvilken buffer, du taler om. Et program kan læse fra en fil og behandle den præcis som det vil. Det kan læse dele af filen eller det hele. På samme måde kan det skrive som det vil. Typisk vil programmet læse hele filen ind i RAM, medmindre det er en meget stor fil. I dette tilfælde læses den i klumper og bearbejdes. Hvis det er en .png fil, vil man nok typisk gemme pixels som bitmap - dvs. uden den komprimering som .png tilbyder. Det letteste er at trunkere og overskrive, da det kræver mindst kodning. Det er dog ret enkelt at checke om noget er ændret. Men TL;DR er: Det er helt op til programmet at bestemme hvad 'Gem' knappen gør.
--
ASUS Z270 TUF Mk1 | 7700K | GTX 1080TI | 32GB 3000MHz | Fractal Define R5 | Samsung 960 EVO 1TB | PG279Q | 2xU2715H
#12
EmilFrederiksen
Ny på siden
08-07-2018 20:36

Rapporter til Admin
Jeg havde altid troet, at filens "ændret" dato, kun blev opdateret hvis man åbnede filen, lavede en ændring og gemte Jeg prøvede lige, åbnede filen, lavede IKKE nogen ændring, men trykkede kun "gem" Filens "ændret" blev opdateret 1. Har det altid været sådan? 2. Vil I sige filen bliver overskrevet eller skrevet igen? Igen, stor tak til alle jeres besvarelser!
--
#13
EmilFrederiksen
Ny på siden
08-07-2018 21:08

Rapporter til Admin
#8 Hvilken størrelse filer skal man op i, før der ikke længere er tale om en overskrivning af filen?
--
#14
NitroBlast
Guru
09-07-2018 13:21

Rapporter til Admin
#8 117539756 bytes. Ej, jeg har ingen anelse - det afhænger af det program, der håndterer filerne. En tekstfil på 16KiB kan genskrives helt hver gang, uden at det går ud over performance. Skulle man genskrive en hel database på 16GiB hver gang den skal gemmes, så bliver systemet sløvet betydeligt, og så giver det mening kun at genskrive ændrede blokke.
--
http://xlinx.dk[...] i7 2600K, 16GB PC3-12800, GA-X68XP-UD4 R1, GTX 560Ti HAWK, 250GB 840 EVO
#15
p
Gæst
09-07-2018 13:25

Rapporter til Admin
Der findes programmer, som kan fortælle dig det, f.eks. WinHex. Du får en liste af clustere, som du kan sammenligne før og efter. En cluster (består af x antal sektorer) er den mindst adresserbare enhed i NTFS.
--
Gæstebruger, opret dit eget login og få din egen signatur.
#16
EmilFrederiksen
Ny på siden
11-07-2018 01:50

Rapporter til Admin
Det var nemlig i den størrelsesorden jeg tænkte på, om der er tale 10 KiB, 50 KiB, 1 MB, osv. Jeg forventede ikke et helt præcist tal :) Men jeg kan på ovenstående besvarelser konkludere, at png. filer på ca. 50 KiB bliver overskrevet, når trykker gem Ret mig endelig, hvis jeg tager fejl Mange tak
--
#17
Sven Bent
Nørd Aspirant
11-07-2018 05:24

Rapporter til Admin
#0 Det kommer an paa dit software. men regn med at hele filen overskrivers igen. #1 En png fil er ikke noedvendigvis afhaange af tidliger pixels du behoever ikke delta endkodning eller deflate komperinig i en png file anyway er dette ogsaa irrelevant da selv en .BMP fil bliver skrevet alt efter hvordan software handtere det og ikke filen format #2 Der er ingen grund til at lave en midliertidgt fil paa hdd'en medm dinre du loebe tor for ram. processen ville vaer en unodevndig sloevnings af arbejdet. GRoft set: Data bliver hente fra diske til ram. arbejdes med i ram Skriver tilbage til disken alt med undertagelser naturligvis #3 +1 #4 Du skal regne med det som udgangs punkt ja Det er ogsaa "sundt" for diskens data #5 filsystemmer arbejder ikke med sectore Filsystemmer arbejder med cluster som typisk adresse til en eller flere sectore filsystemr har brugt 4kbyts mht til NTFS i langt og selv helt btiblage til FAT tiden. En cluster kaa vaere i forskellige laenger og afgoeres ved formatering. Feks kan du formater og valge mellme 4kb elelr endog op til 64kbytees cluster i et ntfs filsystem Sectore storrelse er rimelig fast og afgoeres ved lowlever formatering hvilket vi ikke kan laver paa en hdd siden 80'erne/ start 90'erne #6 ja du har bedt om at skrive data til disken. Saa data til disken bliver skrevet. Det er endog ikke sikker at din nye fil ligger fysisk det samme sted. Saa du kan fysisk set have 2 kopier er filen hvor den ene blot er maerkeret som slettet/fri. #8 Helt enig #9 Enig som udgangs punkt #12 Harddisken ved ikke at din fil ikker er aendret det er ikke saadden den lige laver en sammenligning hver gang du gemmer en fil Du har: a: bedt om at laese en fil B: bed om at skrive en file. ergo ny data for hvornar der er skrevet til filen Derudover har du udover en skrive data og ogsaa en access dato i NTFS systemmer #13 Kommer an paa dit software #16 taenk gigabyte vis
--
Sven Bent - Dr. Diagnostic www.TechCenter.[...] - Home of Project Mercury
--
Sidst redigeret 11-07-2018 05:26
#18
EmilFrederiksen
Ny på siden
11-07-2018 14:29

Rapporter til Admin
#17 Hej Sven Bent Mange tak for dine mange besvarelser #0 - MS Paint #2 - Jeg troede altid at det var en buffer-fil man arbejdede i, når man både arbejdede i MS Paint og Microsoft Word? #5 - Synes det lyder avanceret. Men der er stadig tale om en overskrivning/genskrivning i mit tilfælde? Når vi snakker en PNG fil på 10-100 KiB #6 - Er der ikke kun tale om en ny fil, hvis man trykker gem som? Hvis der bare er tale om en overskrivning af tidligere fil, så er placering den samme? Hvis der er tale om genskrivning af filen, er placering så den samme eller ny? #13 - Hvis der er tale om MS Paint?
--
#19
Chucara
Maxi Nørd
18-07-2018 01:20

Rapporter til Admin
#18: Jeg vil æde min gamle hat på at Paint altid overskriver. Det er ikke beregnet til at arbejde med store filer. Mht. om det altid er samme sted den vil skrive, så er det filsystemet, der afgør det. De fleste Windows brugere kører NTFS i dag. Men nok FAT32 på flash drev. Forestil dig at en fil er en lille smule større når du gemmer end da du loadede. Hvis der er data både før og efter, vil det slet ikke være muligt at skrive denne på præcist samme sted.
--
ASUS Z270 TUF Mk1 | 7700K | GTX 1080TI | 32GB 3000MHz | Fractal Define R5 | Samsung 960 EVO 1TB | PG279Q | 2xU2715H

Opret svar til indlægget: Hvordan bliver ændringer skrevet på HDD platter?


Dit navn:

Din e-mail adresse:


Indholdet fra billedet:
Dit svar: