Екілік санды ондық санға түрлендіру
ҚАЗАҚСТАН РЕСПУБЛИКАСЫ ҒЫЛЫМ ЖӘНЕ ЖОҒАРҒЫ БІЛІМ МИНИСТРЛІГІ
Ғұмарбек Дәукеев атындағы Алматы энергетика және байланыс
университеті коммерциялық емес АҚ
Ақпараттық технологиялар институты
IT-инжиниринг кафедрасы
ҚОРҒАУҒА ЖІБЕРІЛДІ
Кафедра меңгерушісі
ф.-м.ғ.к., доцент
______________ Л.М. Тукенова
____ _____________ 2024 ж.
ДИПЛОМДЫҚ ЖОБА
Тақырыбы: Компьютерден қажет емес файлдарды жоюға арналған қосымшаны әзірлеу
6В06103 - Есептеу техникасы және бағдарламалық қамтамасыз ету білім беру бағдарламасы
Орындаған: Абсалимов А.Р. Тобы: ВТ(ПИ)к-20-1
Ғылыми жетекші: ф.-м.ғ.к., доцент А.А. Аманбаев
Кеңесшілер:
Экономикалық бөлім: э.ғ.к., доцент _______________________Б.И. Тузелбаев
____ ____________ 2024 ж.
Өміртіршілік қауіпсіздігі: оқытушы ______________________А.З. Джамбаева
____ ____________ 2024 ж.
Бағдарламалық қамтама бөлімі: аға оқытушы - - - - ________ - - - - - - _____А.Р. Кальпебаев
____ ____________ 2024 ж.
Норма бақылаушы: аға оқытушы ___________________________А.Т. Сақатай
____ ____________ 2024 ж.
Сын-пікір беруші: ф.-м.ғ.к., доцент ________________________С.З. Сапакова
____ ____________ 2024 ж.
Алматы, 2024
Aңдaтпa
Бұл дипломдық жұмыс GTK 3 интерфейсі бар Rust бағдарламалау тілін қолдана отырып, файлдарды басқаруға арналған қосымшаны әзірлеу мен енгізуді ұсынады. Қолданбаның мақсаты-пайдаланушыларға қажет емес файлдарды компьютерлік жүйелерден анықтау және жою үшін заманауи және жадқа қауіпсіз құрал ұсыну. Тиімді файлдарды іздеу алгоритмдерін біріктіру және пайдаланушыға ыңғайлы интерфейс арқылы қолданба қайталанатын файлдарды анықтау, бос қалтаны анықтау, үлкен файлдарды талдау, бос файлдарды сканерлеу және файлдарды уақытша тазалау сияқты мүмкіндіктерді ұсынады. Rust қауіпсіздікке, жылдамдыққа және параллелизмге ерекше назар аудара отырып, ішкі логика жедел жадты аз тұтынуды және жоғары өнімділікті қамтамасыз етеді. GTK 3 көмегімен жасалған графикалық пайдаланушы интерфейсі Пайдаланушы тәжірибесін жақсартады және үздіксіз тәжірибені қамтамасыз етеді.
Аннотация
В этой дипломной работе представлены разработка и реализация приложения для управления файлами, использующего язык программирования Rust с интерфейсом GTK 3. Цель приложения - предоставить пользователям современный и безопасный для памяти инструмент для выявления и удаления ненужных файлов из их компьютерных систем. Благодаря интеграции эффективных алгоритмов поиска файлов и удобному пользовательскому интерфейсу приложение предлагает такие функции, как обнаружение дубликатов файлов, идентификация пустой папки, анализ больших файлов, сканирование пустых файлов и временная очистка файлов. Благодаря тому, что Rust уделяет особое внимание безопасности, скорости и параллелизму, внутренняя логика обеспечивает низкое потребление оперативной памяти и высокую производительность. Графический пользовательский интерфейс, разработанный с использованием GTK 3, улучшает взаимодействие с пользователем и обеспечивает бесперебойную работу.
Annotation
This thesis presents the design and implementation of a file management application using the Rust programming language with a GTK 3 frontend. The application aims to provide users with a modern and memory-safe tool for identifying and removing unnecessary files from their computer systems. Through the integration of efficient file search algorithms and a clean user interface, the application offers functionalities such as duplicate file detection, empty folder identification, big file analysis, empty file scanning, and temporary file cleanup. Leveraging Rust's emphasis on safety, speed, and concurrency, the backend logic ensures low RAM usage and high performance. The graphical user interface, developed using GTK 3, enhances user interaction and provides a seamless experience.
Мазмұны
Кіріспе 6
1 Тaлдay бөлiмi 7
1.2 Деректерді сақтау технологияларын түсіну: көлемді, файлдық жүйелерді, DAS, NAS және SAN талдауы. 8
1.3 Жад көлемінің өсу тенденциясы 12
1.4 Жүйелерде қоқыс жинау 15
Кіріспе
Қазіргі цифрлық дәуірде, біздің өміріміз технологиямен көбірек араласқан кезде, цифрлық тәртіпсіздікті тиімді басқару маңызды болып табылады. Маңызды құжаттардан уақытша интернет файлдарына дейін компьютерлік жүйелердегі файлдардың көбеюі жүйенің өнімділігін сақтау және сақтау орнын оңтайландыру үшін үлкен қиындықтар туғызады. Қажет емес файлдарды жинақтау біздің құрылғыларымызды баяулатып қана қоймайды, сонымен қатар құнды ресурстарды тұтынады, өнімділікті төмендетеді және жүйенің тұрақсыздығына әкелуі мүмкін.
Файлдарды басқарудың тиімді шешімдерінің шұғыл қажеттілігін мойындай отырып, осы мақалада біз осы мәселені шешу үшін арнайы жасалған қосымшаны жасауға тырысамыз. Пайдаланушыларға компьютерлік жүйелерін түсіру үшін заманауи, жадты үнемдейтін құралды ұсыну мақсатында біз файлдарды басқару қосымшасын әзірлеу мен енгізуге тереңірек үңілеміз. Rust бағдарламалау тілінің сенімділігі мен GTK 3 интерфейс платформасының әмбебаптығын пайдалана отырып, біздің қолданба қажетсіз файлдарды анықтау және жою процесін жеңілдетуге, осылайша жүйенің өнімділігін арттыруға және дискілік кеңістікті пайдалануды оңтайландыруға арналған.
Тиімді файлдарды іздеу алгоритмдерін біріктіру және ыңғайлы интерфейс арқылы біздің қолданба функционалдылықтың кең ауқымын ұсынады. Оларға қайталанатын файлдарды анықтау, бос қалталарды анықтау, үлкен файлдарды талдау, бос файлдарды сканерлеу және файлдарды уақытша тазалау кіреді. Rust қауіпсіздікке, жылдамдыққа және параллелизмге ерекше назар аудара отырып, біздің қосымшамыздың ішкі логикасы үлкен деректер жиынтығымен жұмыс істегенде де жедел жадты аз пайдалануды және жоғары өнімділікті қамтамасыз етеді.
GTK 3 көмегімен жасалған графикалық пайдаланушы интерфейсі Пайдаланушы тәжірибесін жақсартады және үздіксіз тәжірибені қамтамасыз етеді. Сонымен қатар, біздің қолданба пайдаланушыларға іздеу критерийлерін реттеуге және одан әрі талдау үшін нәтижелерді сақтауға мүмкіндік береді, бұл оның пайдалылығы мен әмбебаптығын одан әрі арттырады.
Тұтастай алғанда, бұл жұмыстың мақсаты-Rust сенімділігін GTK 3 талғампаздығымен үйлестіре отырып, дискілік кеңістікті оңтайландыру және заманауи цифрлық жағдайларда жүйенің өнімділігін арттыру үшін сенімді және қолдануға ыңғайлы шешімді ұсына отырып, файлдарды басқару құралдарын дамытуға үлес қосу.
1 Тaлдay бөлiмi
Деректерді сақтау
Алдымен сандық форматтарды қарастырайық. Адамдар ондық сандармен жұмыс істеуге дағдыланған, бірақ компьютерлер екілік форматты қолданады, яғни тек 0 және 1 бар. Әрбір 0 немесе 1 бит деп аталады, ал биттер 8 Байттан тұратын топтарға біріктіріледі. Екілік сандар ондық сандарға ұқсас, тек ондық сандарда тек 2 емес, 10 түрлі таңба (0-ден 9-ға дейін) болады.
Екілік санау жүйесіне кіріспес бұрын, ондық санның не екенін қарастыруымыз керек. Ондық сан таңбалар тізбегі болып табылады және әрбір таңба маңызды. Оң жақтағы бағандағы таңба 1 - ге, ал сол жақтағы келесі бағанда 10-ға тең. Әр бағанда алдыңғы бағаннан 10 есе үлкен мән бар. Мысалы, оң жақтағы екінші бағанда 10 мәні, үшіншісінде - 100, төртіншісінде - 1000 және т.б. 35,812 ондық санын қарастырыңыз. Әр бағандағы таңбаны сол бағандағы мәнге көбейту және көбейтінділерді қосу арқылы осы санның ондық мәнін есептей аламыз. Біз мұны 2.1-суреттен көре аламыз. Нәтиже таңқаларлық емес, өйткені біз ондық санды ондық санға түрлендіреміз. Алайда, біз бұл жалпы процесті ондық емес сандардың ондық мәнін анықтау үшін қолданамыз.
2.1-сурет. Әр таңбаның ондық сан түріндегі мәндері
Ең оң жақ баған ең маңызды емес таңба, ал сол жақ баған ең маңызды таңба деп аталады. 35 812 санында 3 саны ең маңызды таңба, ал 2 саны ең аз маңызды таңба болып табылады.
Енді екілік сандарды қарастырайық. Екілік сан тек екі таңбадан тұрады (0 және 1) және әр бағанда ондық мән бар, ол алдыңғы бағаннан екі есе көп. Осылайша, оң жақ бағанның ондық мәні 1, оң жақтағы екінші бағанның ондық мәні 2, үшінші бағанның ондық мәні 4, төртінші бағанның ондық мәні 8 және т.б. Екілік санның ондық мәнін есептеу үшін біз әр бағанның мәнін ондағы мәнге көбейтеміз. Мұны 1001 0011 екілік саны үшін 2.2-суреттен көре аламыз. Оның ондық мәні 147 екенін көреміз.
2.1-сурет. Екілік санды ондық санға түрлендіру.
Сандық деректерді сақтау үшін сақтау құрылғысында орын бөлу керек. Сіз мұны қағаз формасын толтыру ретінде елестете аласыз, онда сіз өзіңіздің атыңыз бен мекен-жайыңыздың әр таңбасын кішкентай ұяшықтарға енгізуіңіз керек. Атау және мекен-жай өрістерінде сіздің атыңыздағы таңбалар үшін бетте арнайы орын бар. Сандық деректермен дискідегі немесе жадтағы байттар белгілі бір мәндегі байттар үшін бөлінеді. Байт-бұл әдетте деректер үшін бөлінетін ең аз орын.
Байт тек 256 мәнді қамтуы мүмкін, сондықтан байттар үлкен сандарды сақтау үшін топтастырылады. Әдеттегі өлшемдерге 2, 4 немесе 8 байт кіреді. Компьютерлер көп байтты мәндерді ұйымдастыруда ерекшеленеді. Олардың кейбіреулері big-endian ретін пайдаланады және санның ең маңызды байтын бірінші сақтау байтына, ал басқалары little-endian ретін пайдаланады және санның ең аз маңызды байтын бірінші сақтау байтына орналастырады. Естеріңізге сала кетейік, ең маңызды байт - ең үлкен мәні бар байт (ең сол байт), ал ең аз мәні бар байт (ең оң байт).
Деректерді сақтау технологияларын түсіну: көлемді, файлдық жүйелерді, DAS, NAS және SAN талдауы.
Әртүрлі сақтау жүйелерінің өнімділігі мәселелерін түсіну үшін олардың негізгі медиасы мен негізгі қатты диск операцияларын түсіну керек. Жеке элементтердің кедергілерін түсіну күрделі жүйелерде пайда болатын қиындықтар мен жақсартуларды түсінуге негіз береді
Шпиндель, пластиналар және бастар: диск деректер жазылған бірнеше пластиналардан тұрады. Пластиналар бір шпиндельге бекітіліп, бірге айналады. Пластиналардағы деректер жолдарда жазылады. Әрбір жол-ортасында шпиндель бар шеңбер және әр жолдың өз радиусы бар. Цилиндр-бұл барлық пластиналардағы берілген радиустың барлық жолдары. Деректер тректерге секторларда немесе блоктарда жазылады және тректер орталықтан қаншалықты алыс екеніне байланысты әртүрлі блоктар санына ие. Орталықтан алыс орналасқан жолдар ұзағырақ, сондықтан оларда көбірек блоктар бар. Бастар дискідегі деректерді оқиды және жазады, сәйкес трекке ілінеді. Әр пластинада бір бас бар, бірақ олардың барлығы бір блокқа бекітіліп, бірге қозғалады. Әдетте бүкіл трек немесе тұтас цилиндр бір уақытта оқылады және деректер кэштеледі, өйткені бастарды дұрыс жерге (іздеу уақыты) жылжытуға кететін уақыт дискіні 360°бұруға кететін уақыттан ұзағырақ.
Диск контроллері: қатты дискідегі электроника; диск контроллері SCSI немесе ATA сияқты диск протоколын жүзеге асырады. Диск контроллері диск қосылған түйінге қосылады. Диск контроллері үшін стандарттарға сәйкестік деңгейі және Буферлеу немесе кэштеу сияқты кез келген өнімділікті жақсарту маңызды.
Негізгі автобус адаптері (HBA - Host Bus Adapter): HBA түйінде орналасқан және диск (немесе дискілер) мен сервер арасындағы байланысты басқарады. Диск контроллерімен байланысу үшін HBA деректерге қол жеткізу протоколын пайдаланады. Интеллектуалды HBA өндірісті жақсартудың көзі бола алады. Ол әдетте компьютердің аналық платасында немесе кеңейту картасында болады.
RAID-бір дискімен жасауға болатыннан үлкенірек, сенімдірек немесе жылдамырақ сақтау орнын жасау үшін бірнеше тәуелсіз қатты дискілерді пайдаланатын әдістерге арналған жалпы санат. Әрбір RAID әдісі деңгейлері бар (кесте. 1.1).
Raid деңгейі
Әдістері
Сипаттамалары
0
Тарату
Жылдам оқу және жазу, сенімділік нашар
1
Көрініс
Жылдам оқу, жақсы сенімділік, өте қымбат
5
Бөлінген паритетті бақылау
Жылдам оқу, баяу жазу, үнемді
10
Шағылысқан бөлу
Жылдам оқу, ең жақсы сенімділік, ең қымбат
1.1 кесте - жалпы RAID деңгейлері
RAID 0, сондай-ақ деректерді тарату ретінде белгілі, деректерді бір үлкен диск ретінде жұмыс істей алатындай етіп бірнеше дискілерге таратады. RAID 0 виртуалды дискісі бір дискіге қарағанда жылдамырақ; әртүрлі дискілердегі RAID блогында параллель бірнеше оқу және жазу әрекеттері орындалуы мүмкін. RAID 0 Бір дискіге қарағанда сенімді емес, өйткені бір диск істен шыққан кезде бүкіл блок пайдасыз болады. Дискілер санының артуымен қателік ықтималдығы статистикалық түрде артады.
RAID 1, сондай-ақ рефлексия ретінде белгілі, бірдей деректерді жазу үшін екі немесе одан да көп дискілерді пайдаланады. Бірдей сипаттамалары бар дискілерді таңдау керек.
Әрбір жазу әрекеті екі (немесе барлық) дискілерде орындалады және екі (барлық) дискілердегі деректер бірдей жазылады. Оқу әрекеттерін дискілер арасында бөлуге болады, бұл оқуға қол жетімділікті тездетеді. Жазу жылдамдығы ең баяу дискімен анықталады. RAID 1 сенімділікті арттырады. Егер бір диск істен шықса, жүйе жұмысын жалғастырады.
RAID 2 және 3-бұл RAID 5-ке ұқсас сирек қолданылатын стратегиялар, сондықтан біз ондағы жалпы принципті қарастырамыз. Дегенмен, raid 3 дәйекті оқу кезінде әсіресе жақсы өнімділікті қамтамасыз ететінін атап өткен жөн. Осылайша, үлкен графикалық деректер, ағындық деректер және бейне қолданбалары raid 3-ті жиі пайдаланады. Егер сіздің ұйымыңыз осындай файлдарды сақтаса, сіз белгілі бір сервер үшін RAID 3-ті енгізгіңіз келуі мүмкін, әсіресе файлдар әдетте мұрағатталған және жиі өзгермеген кезде.
RAID 4 сонымен қатар RAID 5-ке ұқсас, бірақ сирек қолданылады, себебі ол әдетте баяу. Raid 4 жүйе арнайы жасалған кезде ғана RAID 5-тен жылдамырақ болады. Осындай мысалдардың бірі-Мұқият реттелген WAFL файлдық жүйесі бар network Appliance файлдық сервері.
RAID 5, сондай-ақ таратылған паритетті бақылау ретінде белгілі, шағылысу сияқты сенімділікті арттыруға бағытталған, бірақ аз шығындармен. RAID 5 RAID 0 - ге ұқсас - көбірек көлем алу үшін тарату-бірақ қалпына келтіру ақпаратын жазу үшін бір қосымша диск бар. Егер бір диск істен шықса, RAID 5 жұмысын жалғастырады. Сынған диск ауыстырылған кезде, ондағы деректер қалпына келтіру дискісі арқылы қалпына келтіріледі. Қайта құру кезінде өнімділік төмендейді. RAID 5 RAID 0 сияқты жоғары оқу жылдамдығын ұсынады. Дегенмен, жазу ұзағырақ уақыт алуы мүмкін, өйткені қалпына келтіру ақпаратын жасау және жазу барлық басқа дискілерде ақпаратты оқуды қажет етеді.
RAID 6-9 жоқ немесе алдыңғы деңгейлердегі вариациялардың маркетингтік атауы болып табылады.
RAID 10 , бастапқыда RAID 1 + 0 деп аталады, өлшемі мен жылдамдығын жақсарту үшін бөлуді, ал сенімділік үшін шағылыстыруды пайдаланады. RAID 10-басқа топқа шағылысқан RAID 0 тобы. RAID 0 тобындағы әрбір жеке диск көрсетіледі. Рефлексия RAID 1 болғандықтан, мұндай стандарт 1 + 0 немесе 10 деп аталады. Raid 10 жүйесіндегі қайта құру RAID 5 жүйесіндегідей өнімділікке әсер етпейді. RAID 1 сияқты, бірнеше шағылысу мүмкін және кеңінен қолданылады.
Том-серверге көрінетін деректер қоймасының элементі. Бастапқыда том диск болды және әр диск бір том болды. Дегенмен, бөлімдердің, RAID жүйелерінің және басқа технологиялардың пайда болуымен том жалпы серверге берілген кез келген Сақтау түрі болуы мүмкін. Сервер көлемді бір логикалық диск ретінде көреді, тіпті егер ол шын мәнінде күрделі бөліктерден тұрса да.
Әр том файлдық жүйемен пішімделген. Файлдық жүйелердің бірнеше түрінің әрқайсысы өз мақсаттары үшін немесе белгілі бір өнімділік мәселесін шешу үшін ойлап табылған. Жалпы Windows файлдық жүйелері-FAT, dos FAT32 және NTFS. UNIX Linux жүйелерінде UFS, UFS2, EXT2EXT3, ReiserFS және көптеген эксперименттік файлдық жүйелер бар. Кейбір файлдық жүйелер хаттаманы орындайды, яғни файлдық жүйеден сұралған өзгерістердің қарапайым тізімін жүргізеді және оларды бірден қолданады. Бұл жазу жылдамдығын арттырады және жүйе істен шыққаннан кейін қалпына келтіруді тездетеді.
Тікелей қосылу қоймасы немесе DAS (directly Attached Storage) - серверге қосылған қарапайым қатты диск. DAS сақтау серверге кабельдермен қосылған, бірақ желі арқылы емес кез келген сақтау шешімін білдіреді. Ол серверге тікелей қосылған RAID массивін қамтиды.
Желілік қосылымды сақтау, NAS (network - Attached Storage) - бұл қысқа уақытқа созылған технологияның жаңа термині: серверге қосылған жадқа қол жеткізетін клиенттер. Мысалы, сервердегі файлдарға қол жеткізу үшін NFS пайдаланатын UNIX клиенттері немесе Windows серверіндегі файлдарға қол жеткізу үшін CIFS пайдаланатын Microsoft Windows жүйелері үшін. Көптеген провайдерлер бірнеше файлдарды ортақ пайдалану протоколдарымен бірден жұмыс істейтін желілік файл серверлерін жасайды. Network Appliance және EMC осындай жүйелерді үлкен көлемдегі ақпаратты сақтауға арналған. Linksys және басқа компаниялар тұтынушылар мен шағын бизнес үшін кішірек жүйелерді шығарады.
Сақтау желісі, SAN (Storage Area Network) - бұл дискінің ішкі жүйелері де, серверлері де арнайы желіге қосылатын жүйе - сақтау протоколдары үшін оңтайландырылған жоғары жылдамдықты және төмен кідірісті арнайы желі. Кез келген сервер кез келген сақтау жүйесіне қосыла алады - кем дегенде қол жеткізуді басқару ережелеріне сәйкес. Серверлер қосыла алатын нәрсе - бұл логикалық блок нөмірімен (LUN - Logical Unit Number) анықталатын сақтау жүйесінің көлемі. LUN диск, RAID 5 тобының қабаты, тұтас тұрақты сақтау жүйелері немесе сақтау жүйелері қол жеткізетін кез келген нәрсе болуы мүмкін. Серверлер LUN-ге файлдық жүйе емес, Блок деңгейінде қол жеткізеді. Әдетте белгілі бір уақытта белгілі бір LUN-ге тек бір сервер қосыла алады, әйтпесе серверлер шатасады, өйткені бір жүйе блоктарды жаңартады, ал басқалары оны көрмейді. Кейбір SAN жүйелері қол жетімділікті ажырату үшін бір сервер таңдалатын кластерлік файлдық жүйелерді ұсынады, сондықтан бірнеше серверлер бір уақытта бір томға қол жеткізе алады. Магниттік таспалардың сақтық көшірмесін жасау құралдарын желіге қосуға және көпшілікке қол жетімді етуге болады, өйткені көптеген серверлер магниттік таспа үшін бір қымбат дискіні бөліседі. SAN-дің тағы бір артықшылығы-олар оқшауланған сақтау көлемін азайтады. DAS қолданған кезде кейбір серверлерде дискілік кеңістік болмауы мүмкін, ал басқаларында бұл жеткілікті. Бос орын қажет серверлер үшін қол жетімді емес. SAN технологиясымен әрбір серверде кез келген қажетті өлшемдегі бөлімдер болуы мүмкін және диск кеңістігі қолданбадан оқшауланбайды.
1.3 Жад көлемінің өсу тенденциясы
Қазіргі қоғамда электронды құрылғылардың таралуы бұрын-соңды болмаған қосылу мүмкіндіктерімен, ыңғайлылығымен және инновацияларымен сипатталатын дәуірдің басталуын белгіледі. Смартфондар мен ноутбуктерден бастап интернет заттары мен автономды көліктерге дейін бұл технологиялар қарым - қатынасты жеңілдететін, өнімділікті арттыратын және ойын-сауық мүмкіндіктерін байытатын таптырмас құралға айналды. Бұл электронды ғажайыптардың негізінде жад жатыр-бұл үлкен көлемдегі деректерді сақтауға және алуға мүмкіндік беретін маңызды компонент.
Көптеген жылдар бойы электронды құрылғыларда жад көлемінің ұлғаюы байқалды. Бұл тенденция бірқатар факторларға, соның ішінде жартылай өткізгіш технологияның жетістіктеріне, пайдаланушылардың күтулерінің артуына және үлкен көлемдегі деректерді қажет ететін қосымшалардың таралуына байланысты. Магниттік өзектерде жад пайда болғаннан бастап, SSD дәуіріне дейін және одан әрі жад көлемі экспоненциалды түрде өсті, бұл деректерді сақтау мен өңдеудің бұрын-соңды болмаған мүмкіндіктерін қамтамасыз етті.
Бұл ғылыми жұмыста біз электронды құрылғылардағы жад көлемінің өсу тенденциясының негізгі механизмдері мен қозғаушы күштерін зерттейміз. Жадты кеңейту траекториясы туралы түсінік алу үшін біз тарихи тенденцияларды, ағымдағы әзірлемелерді және болашақ болжамдарды зерттейміз. Сонымен қатар, біз бұл тенденцияның құрылғылардың функционалдығына, энергия тиімділігіне, деректерді басқаруға және әлеуметтік динамикаға әсерін зерттейміз. Осылайша, біз электроникада жадыны пайдаланудың өзгеретін ландшафты және оның кеңірек салдары туралы жан-жақты түсінік беруге тырысамыз.
Электрондық құрылғылардағы жадтың кеңею тарихы есептеу техникасының алғашқы күндерінен басталады. 1950-1960 жылдары магниттік ядро жады компьютерлік жадтың негізгі түріне айналды, қазіргі заманғы стандарттар бойынша салыстырмалы түрде аз жад көлемін ұсынды. Дегенмен, дамудың бастапқы кезеңдерінде де Есептеу тапсырмалары күрделене түскен сайын көбірек жадқа деген қажеттілік айқын болды.
Кейінгі онжылдықтарда жартылай өткізгіш технологияларда айтарлықтай жетістіктерге қол жеткізілді, нәтижесінде динамикалық жедел жады (DRAM), кейінірек флэш-жады пайда болды. Бұл инновациялар деректерді сақтау саласында төңкеріс жасап, тығыздықты арттыруға, қол жеткізу уақытын жылдамдатуға және бір биттің құнын төмендетуге мүмкіндік берді. NAND флэш-жадын енгізу, атап айтқанда, SSD дискілерін әртүрлі электрондық құрылғыларға кеңінен енгізудің маңызды кезеңі болды.
Соңғы жылдары жадтың кеңею қарқыны тез жеделдеді, бұл технологиялық жетістіктер мен нарықтағы сұраныстың үйлесуіне байланысты. Өндірушілер 3D сақтау, көп деңгейлі ұяшық (MLC) және NAND Flash үш деңгейлі ұяшық (TLC) сияқты инновацияларды, сондай-ақ резистивті жедел жад (RRAM) және фазалық ауысу жады (PCM) сияқты тұрақты емес жадтың жаңа технологияларын қолдана отырып, жад шекараларын үнемі кеңейтіп отырады. Сонымен қатар, жасанды интеллект (AI), үлкен деректерді талдау, виртуалды шындық (VR) және кеңейтілген шындық (AR) сияқты үлкен көлемдегі деректерді қажет ететін қосымшалардың пайда болуы жадтың көбірек қажеттілігін тудырды. Бұл қолданбалар жеткілікті сақтау орнын ғана емес, сонымен қатар деректерге жылдам және тиімді қол жеткізуді қажет етеді, бұл заманауи есептеу тапсырмаларының талаптарына бейімделген жоғары өнімді жад шешімдерін әзірлеуді ынталандырады.
Болашаққа көз жүгіртсек, электронды құрылғылардағы жад көлемінің өсу үрдісі бәсеңдемейді деп айтуға болады. Мур заңы қиындықтарға тап болғанымен, жақын болашақта жад көлемінің экспоненциалды түрде өсуін қамтамасыз ете отырып, жартылай өткізгіш құрылғыларды масштабтау үшін әлі де нұсқаулық болып табылады. Сонымен қатар, жаңа жад архитектураларын, материалдар мен өндірістік процестерді құруға бағытталған үздіксіз зерттеулер мен әзірлемелер жадтың тығыздығын, өнімділігі мен энергия тиімділігін одан әрі арттыруға уәде береді.
MRAM (магниторезистивті кездейсоқ қол жетімді жедел жады), FeRAM (ферроэлектрлік жедел жады) және мемристорлар сияқты жаңа технологиялар қолданыстағы технологиялардың ең жақсы сипаттамаларын біріктіретін, олардың шектеулерін еңсере отырып, келесі буын жад шешімдерін жасауға кең мүмкіндіктер ашады. Сонымен қатар, 3D интеграциясының, нейроморфтық және кванттық есептеулердің жетістіктері осы трансформациялық технологиялардың бірегей талаптарын қанағаттандыру үшін жадыны жобалау мен басқарудың жаңа парадигмаларын қолдануды қажет етуі мүмкін.
Электрондық құрылғылардағы жад көлемін ұлғайту үрдісі көптеген артықшылықтар мен мүмкіндіктерді ашса да, ол айтарлықтай қиындықтармен бірге келеді. Негізгі мәселелердің бірі-үлкен көлемдегі жадты қажет ететін құрылғыларды қуаттандыру үшін энергияға сұраныстың артуы, әсіресе мобильді және батареямен жұмыс істейтін жүйелерде. Бұл мәселені шешу тек қуаты аз жад технологиясының жетістіктерін ғана емес, сонымен қатар қуатты тұтынуды азайту үшін бағдарламалық жасақтама алгоритмдері мен жүйелік архитектураны оңтайландыруды қажет етеді.
Сонымен қатар, деректерге негізделген технологиялардың таралуы деректердің құпиялылығына, олардың қауіпсіздігі мен иелігіне қатысты алаңдаушылық туғызады. Электрондық құрылғылар құпия ақпараттың үнемі өсіп келе жатқан көлемін сақтайтындықтан, деректерді рұқсатсыз кіруден, кибершабуылдардан және хакерлерден қорғау өте маңызды. Бұл сақталған деректердің тұтастығы мен құпиялылығын қамтамасыз ету үшін сенімді шифрлау схемаларын, аутентификация механизмдерін және деректерді басқару әдістерін қажет етеді.
Сонымен қатар, электронды құрылғылар арқылы жасалған және сақталған деректердің үлкен көлемі деректерді басқаруға, оларды табуға және талдауға қиындық тудырады. Дәстүрлі файлдық жүйелер мен сақтау архитектуралары инновациялық сақтау шешімдерін, деректерді қысу әдістерін және таратылған есептеу жүйелерін әзірлеуді қажет ететін заманауи деректер жиынтығының ауқымы мен күрделілігін жеңе алмайды.
Технологиялық және инженерлік мәселелерден басқа, электронды құрылғылардағы жад көлемінің ұлғаю тенденциясы елеулі әлеуметтік салдарға әкеледі. Смартфондардың, әлеуметтік медиа платформалардың және бұлттық қызметтердің кең таралуы адамдардың қарым-қатынас жасау, бірлесіп жұмыс істеу және ақпаратты тұтыну тәсілдерін өзгертті. Алайда, цифрлық тәуелділік, ақпараттың шамадан тыс жүктелуі және жеке өмірге қол сұғылмаушылықтың бұзылуы туралы алаңдаушылық өзекті қоғамдық мәселелерге айналды.
Сонымен қатар, цифрлық алшақтық сақталады, өйткені демографиялық, әлеуметтік-экономикалық және географиялық белгілер бойынша технологияға қол жетімділік пен цифрлық сауаттылықта әлі де айырмашылықтар бар. Бұл алшақтықты жою адамдарға цифрлық экономика мен қоғамға толық қатысуға мүмкіндік беретін арзан құрылғыларға, сенімді байланысқа және білім беру ресурстарына тең қол жетімділікті қамтамасыз ету үшін келісілген күш-жігерді қажет етеді.
1.4 Жүйелерде қоқыс жинау
Қоқыстарды жинауды Джон Маккарти шамамен 1959 жылы Lisp-те жадыны қолмен басқаруды жеңілдету үшін ойлап тапқан және бұл бағдарлама енді пайдаланбайтын нысандар алып жатқан қоқыстарды немесе жадты босатуға тырысатын жадыны автоматты басқарудың бір түрі. Қоқыс жинау-Бұл жадты қолмен басқаруға қарама-қарсы, онда бағдарламашы қандай нысандарды босатып, жад жүйесіне қайтару керектігін көрсетуі керек. Қоқыстарды жинау бағдарламадағы жалпы өңдеу уақытының едәуір бөлігін алуы мүмкін және өнімділікке айтарлықтай әсер етуі мүмкін. Жақсы іске асырумен және жадтың жеткілікті көлемімен, қосымшаға байланысты, қоқысты жинау жадты қолмен басқаруға қарағанда жылдамырақ болуы мүмкін, ал керісінше де дұрыс болуы мүмкін және бұл бұрын қоқысты жинаудың оңтайлы емес алгоритмдерінде жиі болған. Қолданыстағы бағдарламалау тілдерінің көпшілігі тілдің спецификациясында анықталған негізгі компонент ретінде қоқыстарды жинауды қажет етеді, сондықтан оларды қоқыс жинайтын тілдер деп атайды. C және C++ сияқты басқа тілдер жадты қолмен басқаруға арналған, бірақ арнайы кітапханалар арқылы қоқыс жинағышты қамтуы мүмкін: ең көп тарағаны-консервативті қоқыс жинаушы Boehm-Demers-Weiser, оны C malloc немесе C NE new үшін қоқыс жинағышты ауыстыру ретінде пайдалануға болады. D және Nim сияқты кейбір басқа тілдер пайдаланушыға жадты қолмен басқару әдістерін немесе қоқыс жинауды қолдануға шешім қабылдауға мүмкіндік беретін біріктірілген тәсілді қолдана алады. Жадты басқарудың қолмен тәсілі белгілі бір контексте максималды жылдамдықты қажет ететін кодтың кішкене бөлігі қажет болған кезде қолайлы болуы мүмкін. Шындығында, көптеген адамдар қоқысты қолмен жинау үшін қажет болғаннан бес есе көп жадты қажет етеді деп санайды, бұл өнімділіктің төмендеуіне әкеледі. Сонымен қатар, жұмыс уақытында қоқыстың қашан жиналатынын болжау мүмкін емес, бұл процестің тоқтап қалуына әкеледі және бұл транзакцияларды өңдеу сияқты белгілі бір контексттерде мәселе болуы мүмкін. Сонымен қатар, қоқыс жинауды қадағалау сияқты кейбір қоқыс жинау әдістері детерминирленбейді, өйткені қоқыс деп белгіленген нысан ақырында жиналады, бірақ оның қашан және қашан болатынын көрсету мүмкін емес. Детерминирленбеу қоқыс жинау тәсілін ресурстарды алу және инициализация (RAII) сияқты басқа қолмен жадты басқару әрекеттерімен біріктіре алмауға әкеледі, бұл пайдаланушының өзара әрекеттесу терезелері мен файлдары сияқты GCed емес ресурстарды басқаруға көмектеседі. Әдетте, жадты қолмен басқаруды қажет ететін жүйеде қолмен басқарылатын ресурс қолмен басқарылатын басқа объектінің бөлігі болуы керек. Қоқысты жинаудың негізгі мәселелері сипатталғаннан кейін, ол шешетін жадыны басқару мәселелерін де сипаттау қажет, бұл бағдарламашыны көптеген контексттерде болжау өте қиын болатын көптеген жиі қателіктерден босатады. Бұл қателер жадты босатумен байланысты, мысалы, меңзер жойылған белгілі бір нысанды қамтуы керек бос жад ұяшығына байланған кезде пайда болатын меңзердің қатып қалуы сияқты көптеген мәселелерді тудыруы мүмкін. Егер меңзер көріну аймағынан тыс айнымалының мекен-жайымен байланысты болса, осылайша жойылып, болжанбайтын нәтижелерге әкелуі мүмкін, бұл қатені анықтауда қиындықтар тудыруы мүмкін. Сонымен қатар, қосарланған босату қателері - бұл бағдарламашының жад ұяшығын екі рет босатуынан туындаған қателердің тағы бір жиі кездесетін түрі, ал осы уақыт ішінде оны жаңа объект бөле алады. Тағы бір маңызды мәселе-жадтың ағып кетуі, ол жад объектілерінің қол жетімді болмауынан туындауы мүмкін, сондықтан оларды босату мүмкін емес. Бұл қателердің көпшілігі қауіпсіздіктің ағып кетуіне әкелуі мүмкін және оларды хакерлер құпия деректерге қол жеткізу үшін қолдана алады. Қоқыс жинау бағдарламашыны жадыны басқару тәжірибесінен босатудың орнына, жоғарыда аталған барлық мәселелерді шешеді немесе айтарлықтай ... жалғасы
Ғұмарбек Дәукеев атындағы Алматы энергетика және байланыс
университеті коммерциялық емес АҚ
Ақпараттық технологиялар институты
IT-инжиниринг кафедрасы
ҚОРҒАУҒА ЖІБЕРІЛДІ
Кафедра меңгерушісі
ф.-м.ғ.к., доцент
______________ Л.М. Тукенова
____ _____________ 2024 ж.
ДИПЛОМДЫҚ ЖОБА
Тақырыбы: Компьютерден қажет емес файлдарды жоюға арналған қосымшаны әзірлеу
6В06103 - Есептеу техникасы және бағдарламалық қамтамасыз ету білім беру бағдарламасы
Орындаған: Абсалимов А.Р. Тобы: ВТ(ПИ)к-20-1
Ғылыми жетекші: ф.-м.ғ.к., доцент А.А. Аманбаев
Кеңесшілер:
Экономикалық бөлім: э.ғ.к., доцент _______________________Б.И. Тузелбаев
____ ____________ 2024 ж.
Өміртіршілік қауіпсіздігі: оқытушы ______________________А.З. Джамбаева
____ ____________ 2024 ж.
Бағдарламалық қамтама бөлімі: аға оқытушы - - - - ________ - - - - - - _____А.Р. Кальпебаев
____ ____________ 2024 ж.
Норма бақылаушы: аға оқытушы ___________________________А.Т. Сақатай
____ ____________ 2024 ж.
Сын-пікір беруші: ф.-м.ғ.к., доцент ________________________С.З. Сапакова
____ ____________ 2024 ж.
Алматы, 2024
Aңдaтпa
Бұл дипломдық жұмыс GTK 3 интерфейсі бар Rust бағдарламалау тілін қолдана отырып, файлдарды басқаруға арналған қосымшаны әзірлеу мен енгізуді ұсынады. Қолданбаның мақсаты-пайдаланушыларға қажет емес файлдарды компьютерлік жүйелерден анықтау және жою үшін заманауи және жадқа қауіпсіз құрал ұсыну. Тиімді файлдарды іздеу алгоритмдерін біріктіру және пайдаланушыға ыңғайлы интерфейс арқылы қолданба қайталанатын файлдарды анықтау, бос қалтаны анықтау, үлкен файлдарды талдау, бос файлдарды сканерлеу және файлдарды уақытша тазалау сияқты мүмкіндіктерді ұсынады. Rust қауіпсіздікке, жылдамдыққа және параллелизмге ерекше назар аудара отырып, ішкі логика жедел жадты аз тұтынуды және жоғары өнімділікті қамтамасыз етеді. GTK 3 көмегімен жасалған графикалық пайдаланушы интерфейсі Пайдаланушы тәжірибесін жақсартады және үздіксіз тәжірибені қамтамасыз етеді.
Аннотация
В этой дипломной работе представлены разработка и реализация приложения для управления файлами, использующего язык программирования Rust с интерфейсом GTK 3. Цель приложения - предоставить пользователям современный и безопасный для памяти инструмент для выявления и удаления ненужных файлов из их компьютерных систем. Благодаря интеграции эффективных алгоритмов поиска файлов и удобному пользовательскому интерфейсу приложение предлагает такие функции, как обнаружение дубликатов файлов, идентификация пустой папки, анализ больших файлов, сканирование пустых файлов и временная очистка файлов. Благодаря тому, что Rust уделяет особое внимание безопасности, скорости и параллелизму, внутренняя логика обеспечивает низкое потребление оперативной памяти и высокую производительность. Графический пользовательский интерфейс, разработанный с использованием GTK 3, улучшает взаимодействие с пользователем и обеспечивает бесперебойную работу.
Annotation
This thesis presents the design and implementation of a file management application using the Rust programming language with a GTK 3 frontend. The application aims to provide users with a modern and memory-safe tool for identifying and removing unnecessary files from their computer systems. Through the integration of efficient file search algorithms and a clean user interface, the application offers functionalities such as duplicate file detection, empty folder identification, big file analysis, empty file scanning, and temporary file cleanup. Leveraging Rust's emphasis on safety, speed, and concurrency, the backend logic ensures low RAM usage and high performance. The graphical user interface, developed using GTK 3, enhances user interaction and provides a seamless experience.
Мазмұны
Кіріспе 6
1 Тaлдay бөлiмi 7
1.2 Деректерді сақтау технологияларын түсіну: көлемді, файлдық жүйелерді, DAS, NAS және SAN талдауы. 8
1.3 Жад көлемінің өсу тенденциясы 12
1.4 Жүйелерде қоқыс жинау 15
Кіріспе
Қазіргі цифрлық дәуірде, біздің өміріміз технологиямен көбірек араласқан кезде, цифрлық тәртіпсіздікті тиімді басқару маңызды болып табылады. Маңызды құжаттардан уақытша интернет файлдарына дейін компьютерлік жүйелердегі файлдардың көбеюі жүйенің өнімділігін сақтау және сақтау орнын оңтайландыру үшін үлкен қиындықтар туғызады. Қажет емес файлдарды жинақтау біздің құрылғыларымызды баяулатып қана қоймайды, сонымен қатар құнды ресурстарды тұтынады, өнімділікті төмендетеді және жүйенің тұрақсыздығына әкелуі мүмкін.
Файлдарды басқарудың тиімді шешімдерінің шұғыл қажеттілігін мойындай отырып, осы мақалада біз осы мәселені шешу үшін арнайы жасалған қосымшаны жасауға тырысамыз. Пайдаланушыларға компьютерлік жүйелерін түсіру үшін заманауи, жадты үнемдейтін құралды ұсыну мақсатында біз файлдарды басқару қосымшасын әзірлеу мен енгізуге тереңірек үңілеміз. Rust бағдарламалау тілінің сенімділігі мен GTK 3 интерфейс платформасының әмбебаптығын пайдалана отырып, біздің қолданба қажетсіз файлдарды анықтау және жою процесін жеңілдетуге, осылайша жүйенің өнімділігін арттыруға және дискілік кеңістікті пайдалануды оңтайландыруға арналған.
Тиімді файлдарды іздеу алгоритмдерін біріктіру және ыңғайлы интерфейс арқылы біздің қолданба функционалдылықтың кең ауқымын ұсынады. Оларға қайталанатын файлдарды анықтау, бос қалталарды анықтау, үлкен файлдарды талдау, бос файлдарды сканерлеу және файлдарды уақытша тазалау кіреді. Rust қауіпсіздікке, жылдамдыққа және параллелизмге ерекше назар аудара отырып, біздің қосымшамыздың ішкі логикасы үлкен деректер жиынтығымен жұмыс істегенде де жедел жадты аз пайдалануды және жоғары өнімділікті қамтамасыз етеді.
GTK 3 көмегімен жасалған графикалық пайдаланушы интерфейсі Пайдаланушы тәжірибесін жақсартады және үздіксіз тәжірибені қамтамасыз етеді. Сонымен қатар, біздің қолданба пайдаланушыларға іздеу критерийлерін реттеуге және одан әрі талдау үшін нәтижелерді сақтауға мүмкіндік береді, бұл оның пайдалылығы мен әмбебаптығын одан әрі арттырады.
Тұтастай алғанда, бұл жұмыстың мақсаты-Rust сенімділігін GTK 3 талғампаздығымен үйлестіре отырып, дискілік кеңістікті оңтайландыру және заманауи цифрлық жағдайларда жүйенің өнімділігін арттыру үшін сенімді және қолдануға ыңғайлы шешімді ұсына отырып, файлдарды басқару құралдарын дамытуға үлес қосу.
1 Тaлдay бөлiмi
Деректерді сақтау
Алдымен сандық форматтарды қарастырайық. Адамдар ондық сандармен жұмыс істеуге дағдыланған, бірақ компьютерлер екілік форматты қолданады, яғни тек 0 және 1 бар. Әрбір 0 немесе 1 бит деп аталады, ал биттер 8 Байттан тұратын топтарға біріктіріледі. Екілік сандар ондық сандарға ұқсас, тек ондық сандарда тек 2 емес, 10 түрлі таңба (0-ден 9-ға дейін) болады.
Екілік санау жүйесіне кіріспес бұрын, ондық санның не екенін қарастыруымыз керек. Ондық сан таңбалар тізбегі болып табылады және әрбір таңба маңызды. Оң жақтағы бағандағы таңба 1 - ге, ал сол жақтағы келесі бағанда 10-ға тең. Әр бағанда алдыңғы бағаннан 10 есе үлкен мән бар. Мысалы, оң жақтағы екінші бағанда 10 мәні, үшіншісінде - 100, төртіншісінде - 1000 және т.б. 35,812 ондық санын қарастырыңыз. Әр бағандағы таңбаны сол бағандағы мәнге көбейту және көбейтінділерді қосу арқылы осы санның ондық мәнін есептей аламыз. Біз мұны 2.1-суреттен көре аламыз. Нәтиже таңқаларлық емес, өйткені біз ондық санды ондық санға түрлендіреміз. Алайда, біз бұл жалпы процесті ондық емес сандардың ондық мәнін анықтау үшін қолданамыз.
2.1-сурет. Әр таңбаның ондық сан түріндегі мәндері
Ең оң жақ баған ең маңызды емес таңба, ал сол жақ баған ең маңызды таңба деп аталады. 35 812 санында 3 саны ең маңызды таңба, ал 2 саны ең аз маңызды таңба болып табылады.
Енді екілік сандарды қарастырайық. Екілік сан тек екі таңбадан тұрады (0 және 1) және әр бағанда ондық мән бар, ол алдыңғы бағаннан екі есе көп. Осылайша, оң жақ бағанның ондық мәні 1, оң жақтағы екінші бағанның ондық мәні 2, үшінші бағанның ондық мәні 4, төртінші бағанның ондық мәні 8 және т.б. Екілік санның ондық мәнін есептеу үшін біз әр бағанның мәнін ондағы мәнге көбейтеміз. Мұны 1001 0011 екілік саны үшін 2.2-суреттен көре аламыз. Оның ондық мәні 147 екенін көреміз.
2.1-сурет. Екілік санды ондық санға түрлендіру.
Сандық деректерді сақтау үшін сақтау құрылғысында орын бөлу керек. Сіз мұны қағаз формасын толтыру ретінде елестете аласыз, онда сіз өзіңіздің атыңыз бен мекен-жайыңыздың әр таңбасын кішкентай ұяшықтарға енгізуіңіз керек. Атау және мекен-жай өрістерінде сіздің атыңыздағы таңбалар үшін бетте арнайы орын бар. Сандық деректермен дискідегі немесе жадтағы байттар белгілі бір мәндегі байттар үшін бөлінеді. Байт-бұл әдетте деректер үшін бөлінетін ең аз орын.
Байт тек 256 мәнді қамтуы мүмкін, сондықтан байттар үлкен сандарды сақтау үшін топтастырылады. Әдеттегі өлшемдерге 2, 4 немесе 8 байт кіреді. Компьютерлер көп байтты мәндерді ұйымдастыруда ерекшеленеді. Олардың кейбіреулері big-endian ретін пайдаланады және санның ең маңызды байтын бірінші сақтау байтына, ал басқалары little-endian ретін пайдаланады және санның ең аз маңызды байтын бірінші сақтау байтына орналастырады. Естеріңізге сала кетейік, ең маңызды байт - ең үлкен мәні бар байт (ең сол байт), ал ең аз мәні бар байт (ең оң байт).
Деректерді сақтау технологияларын түсіну: көлемді, файлдық жүйелерді, DAS, NAS және SAN талдауы.
Әртүрлі сақтау жүйелерінің өнімділігі мәселелерін түсіну үшін олардың негізгі медиасы мен негізгі қатты диск операцияларын түсіну керек. Жеке элементтердің кедергілерін түсіну күрделі жүйелерде пайда болатын қиындықтар мен жақсартуларды түсінуге негіз береді
Шпиндель, пластиналар және бастар: диск деректер жазылған бірнеше пластиналардан тұрады. Пластиналар бір шпиндельге бекітіліп, бірге айналады. Пластиналардағы деректер жолдарда жазылады. Әрбір жол-ортасында шпиндель бар шеңбер және әр жолдың өз радиусы бар. Цилиндр-бұл барлық пластиналардағы берілген радиустың барлық жолдары. Деректер тректерге секторларда немесе блоктарда жазылады және тректер орталықтан қаншалықты алыс екеніне байланысты әртүрлі блоктар санына ие. Орталықтан алыс орналасқан жолдар ұзағырақ, сондықтан оларда көбірек блоктар бар. Бастар дискідегі деректерді оқиды және жазады, сәйкес трекке ілінеді. Әр пластинада бір бас бар, бірақ олардың барлығы бір блокқа бекітіліп, бірге қозғалады. Әдетте бүкіл трек немесе тұтас цилиндр бір уақытта оқылады және деректер кэштеледі, өйткені бастарды дұрыс жерге (іздеу уақыты) жылжытуға кететін уақыт дискіні 360°бұруға кететін уақыттан ұзағырақ.
Диск контроллері: қатты дискідегі электроника; диск контроллері SCSI немесе ATA сияқты диск протоколын жүзеге асырады. Диск контроллері диск қосылған түйінге қосылады. Диск контроллері үшін стандарттарға сәйкестік деңгейі және Буферлеу немесе кэштеу сияқты кез келген өнімділікті жақсарту маңызды.
Негізгі автобус адаптері (HBA - Host Bus Adapter): HBA түйінде орналасқан және диск (немесе дискілер) мен сервер арасындағы байланысты басқарады. Диск контроллерімен байланысу үшін HBA деректерге қол жеткізу протоколын пайдаланады. Интеллектуалды HBA өндірісті жақсартудың көзі бола алады. Ол әдетте компьютердің аналық платасында немесе кеңейту картасында болады.
RAID-бір дискімен жасауға болатыннан үлкенірек, сенімдірек немесе жылдамырақ сақтау орнын жасау үшін бірнеше тәуелсіз қатты дискілерді пайдаланатын әдістерге арналған жалпы санат. Әрбір RAID әдісі деңгейлері бар (кесте. 1.1).
Raid деңгейі
Әдістері
Сипаттамалары
0
Тарату
Жылдам оқу және жазу, сенімділік нашар
1
Көрініс
Жылдам оқу, жақсы сенімділік, өте қымбат
5
Бөлінген паритетті бақылау
Жылдам оқу, баяу жазу, үнемді
10
Шағылысқан бөлу
Жылдам оқу, ең жақсы сенімділік, ең қымбат
1.1 кесте - жалпы RAID деңгейлері
RAID 0, сондай-ақ деректерді тарату ретінде белгілі, деректерді бір үлкен диск ретінде жұмыс істей алатындай етіп бірнеше дискілерге таратады. RAID 0 виртуалды дискісі бір дискіге қарағанда жылдамырақ; әртүрлі дискілердегі RAID блогында параллель бірнеше оқу және жазу әрекеттері орындалуы мүмкін. RAID 0 Бір дискіге қарағанда сенімді емес, өйткені бір диск істен шыққан кезде бүкіл блок пайдасыз болады. Дискілер санының артуымен қателік ықтималдығы статистикалық түрде артады.
RAID 1, сондай-ақ рефлексия ретінде белгілі, бірдей деректерді жазу үшін екі немесе одан да көп дискілерді пайдаланады. Бірдей сипаттамалары бар дискілерді таңдау керек.
Әрбір жазу әрекеті екі (немесе барлық) дискілерде орындалады және екі (барлық) дискілердегі деректер бірдей жазылады. Оқу әрекеттерін дискілер арасында бөлуге болады, бұл оқуға қол жетімділікті тездетеді. Жазу жылдамдығы ең баяу дискімен анықталады. RAID 1 сенімділікті арттырады. Егер бір диск істен шықса, жүйе жұмысын жалғастырады.
RAID 2 және 3-бұл RAID 5-ке ұқсас сирек қолданылатын стратегиялар, сондықтан біз ондағы жалпы принципті қарастырамыз. Дегенмен, raid 3 дәйекті оқу кезінде әсіресе жақсы өнімділікті қамтамасыз ететінін атап өткен жөн. Осылайша, үлкен графикалық деректер, ағындық деректер және бейне қолданбалары raid 3-ті жиі пайдаланады. Егер сіздің ұйымыңыз осындай файлдарды сақтаса, сіз белгілі бір сервер үшін RAID 3-ті енгізгіңіз келуі мүмкін, әсіресе файлдар әдетте мұрағатталған және жиі өзгермеген кезде.
RAID 4 сонымен қатар RAID 5-ке ұқсас, бірақ сирек қолданылады, себебі ол әдетте баяу. Raid 4 жүйе арнайы жасалған кезде ғана RAID 5-тен жылдамырақ болады. Осындай мысалдардың бірі-Мұқият реттелген WAFL файлдық жүйесі бар network Appliance файлдық сервері.
RAID 5, сондай-ақ таратылған паритетті бақылау ретінде белгілі, шағылысу сияқты сенімділікті арттыруға бағытталған, бірақ аз шығындармен. RAID 5 RAID 0 - ге ұқсас - көбірек көлем алу үшін тарату-бірақ қалпына келтіру ақпаратын жазу үшін бір қосымша диск бар. Егер бір диск істен шықса, RAID 5 жұмысын жалғастырады. Сынған диск ауыстырылған кезде, ондағы деректер қалпына келтіру дискісі арқылы қалпына келтіріледі. Қайта құру кезінде өнімділік төмендейді. RAID 5 RAID 0 сияқты жоғары оқу жылдамдығын ұсынады. Дегенмен, жазу ұзағырақ уақыт алуы мүмкін, өйткені қалпына келтіру ақпаратын жасау және жазу барлық басқа дискілерде ақпаратты оқуды қажет етеді.
RAID 6-9 жоқ немесе алдыңғы деңгейлердегі вариациялардың маркетингтік атауы болып табылады.
RAID 10 , бастапқыда RAID 1 + 0 деп аталады, өлшемі мен жылдамдығын жақсарту үшін бөлуді, ал сенімділік үшін шағылыстыруды пайдаланады. RAID 10-басқа топқа шағылысқан RAID 0 тобы. RAID 0 тобындағы әрбір жеке диск көрсетіледі. Рефлексия RAID 1 болғандықтан, мұндай стандарт 1 + 0 немесе 10 деп аталады. Raid 10 жүйесіндегі қайта құру RAID 5 жүйесіндегідей өнімділікке әсер етпейді. RAID 1 сияқты, бірнеше шағылысу мүмкін және кеңінен қолданылады.
Том-серверге көрінетін деректер қоймасының элементі. Бастапқыда том диск болды және әр диск бір том болды. Дегенмен, бөлімдердің, RAID жүйелерінің және басқа технологиялардың пайда болуымен том жалпы серверге берілген кез келген Сақтау түрі болуы мүмкін. Сервер көлемді бір логикалық диск ретінде көреді, тіпті егер ол шын мәнінде күрделі бөліктерден тұрса да.
Әр том файлдық жүйемен пішімделген. Файлдық жүйелердің бірнеше түрінің әрқайсысы өз мақсаттары үшін немесе белгілі бір өнімділік мәселесін шешу үшін ойлап табылған. Жалпы Windows файлдық жүйелері-FAT, dos FAT32 және NTFS. UNIX Linux жүйелерінде UFS, UFS2, EXT2EXT3, ReiserFS және көптеген эксперименттік файлдық жүйелер бар. Кейбір файлдық жүйелер хаттаманы орындайды, яғни файлдық жүйеден сұралған өзгерістердің қарапайым тізімін жүргізеді және оларды бірден қолданады. Бұл жазу жылдамдығын арттырады және жүйе істен шыққаннан кейін қалпына келтіруді тездетеді.
Тікелей қосылу қоймасы немесе DAS (directly Attached Storage) - серверге қосылған қарапайым қатты диск. DAS сақтау серверге кабельдермен қосылған, бірақ желі арқылы емес кез келген сақтау шешімін білдіреді. Ол серверге тікелей қосылған RAID массивін қамтиды.
Желілік қосылымды сақтау, NAS (network - Attached Storage) - бұл қысқа уақытқа созылған технологияның жаңа термині: серверге қосылған жадқа қол жеткізетін клиенттер. Мысалы, сервердегі файлдарға қол жеткізу үшін NFS пайдаланатын UNIX клиенттері немесе Windows серверіндегі файлдарға қол жеткізу үшін CIFS пайдаланатын Microsoft Windows жүйелері үшін. Көптеген провайдерлер бірнеше файлдарды ортақ пайдалану протоколдарымен бірден жұмыс істейтін желілік файл серверлерін жасайды. Network Appliance және EMC осындай жүйелерді үлкен көлемдегі ақпаратты сақтауға арналған. Linksys және басқа компаниялар тұтынушылар мен шағын бизнес үшін кішірек жүйелерді шығарады.
Сақтау желісі, SAN (Storage Area Network) - бұл дискінің ішкі жүйелері де, серверлері де арнайы желіге қосылатын жүйе - сақтау протоколдары үшін оңтайландырылған жоғары жылдамдықты және төмен кідірісті арнайы желі. Кез келген сервер кез келген сақтау жүйесіне қосыла алады - кем дегенде қол жеткізуді басқару ережелеріне сәйкес. Серверлер қосыла алатын нәрсе - бұл логикалық блок нөмірімен (LUN - Logical Unit Number) анықталатын сақтау жүйесінің көлемі. LUN диск, RAID 5 тобының қабаты, тұтас тұрақты сақтау жүйелері немесе сақтау жүйелері қол жеткізетін кез келген нәрсе болуы мүмкін. Серверлер LUN-ге файлдық жүйе емес, Блок деңгейінде қол жеткізеді. Әдетте белгілі бір уақытта белгілі бір LUN-ге тек бір сервер қосыла алады, әйтпесе серверлер шатасады, өйткені бір жүйе блоктарды жаңартады, ал басқалары оны көрмейді. Кейбір SAN жүйелері қол жетімділікті ажырату үшін бір сервер таңдалатын кластерлік файлдық жүйелерді ұсынады, сондықтан бірнеше серверлер бір уақытта бір томға қол жеткізе алады. Магниттік таспалардың сақтық көшірмесін жасау құралдарын желіге қосуға және көпшілікке қол жетімді етуге болады, өйткені көптеген серверлер магниттік таспа үшін бір қымбат дискіні бөліседі. SAN-дің тағы бір артықшылығы-олар оқшауланған сақтау көлемін азайтады. DAS қолданған кезде кейбір серверлерде дискілік кеңістік болмауы мүмкін, ал басқаларында бұл жеткілікті. Бос орын қажет серверлер үшін қол жетімді емес. SAN технологиясымен әрбір серверде кез келген қажетті өлшемдегі бөлімдер болуы мүмкін және диск кеңістігі қолданбадан оқшауланбайды.
1.3 Жад көлемінің өсу тенденциясы
Қазіргі қоғамда электронды құрылғылардың таралуы бұрын-соңды болмаған қосылу мүмкіндіктерімен, ыңғайлылығымен және инновацияларымен сипатталатын дәуірдің басталуын белгіледі. Смартфондар мен ноутбуктерден бастап интернет заттары мен автономды көліктерге дейін бұл технологиялар қарым - қатынасты жеңілдететін, өнімділікті арттыратын және ойын-сауық мүмкіндіктерін байытатын таптырмас құралға айналды. Бұл электронды ғажайыптардың негізінде жад жатыр-бұл үлкен көлемдегі деректерді сақтауға және алуға мүмкіндік беретін маңызды компонент.
Көптеген жылдар бойы электронды құрылғыларда жад көлемінің ұлғаюы байқалды. Бұл тенденция бірқатар факторларға, соның ішінде жартылай өткізгіш технологияның жетістіктеріне, пайдаланушылардың күтулерінің артуына және үлкен көлемдегі деректерді қажет ететін қосымшалардың таралуына байланысты. Магниттік өзектерде жад пайда болғаннан бастап, SSD дәуіріне дейін және одан әрі жад көлемі экспоненциалды түрде өсті, бұл деректерді сақтау мен өңдеудің бұрын-соңды болмаған мүмкіндіктерін қамтамасыз етті.
Бұл ғылыми жұмыста біз электронды құрылғылардағы жад көлемінің өсу тенденциясының негізгі механизмдері мен қозғаушы күштерін зерттейміз. Жадты кеңейту траекториясы туралы түсінік алу үшін біз тарихи тенденцияларды, ағымдағы әзірлемелерді және болашақ болжамдарды зерттейміз. Сонымен қатар, біз бұл тенденцияның құрылғылардың функционалдығына, энергия тиімділігіне, деректерді басқаруға және әлеуметтік динамикаға әсерін зерттейміз. Осылайша, біз электроникада жадыны пайдаланудың өзгеретін ландшафты және оның кеңірек салдары туралы жан-жақты түсінік беруге тырысамыз.
Электрондық құрылғылардағы жадтың кеңею тарихы есептеу техникасының алғашқы күндерінен басталады. 1950-1960 жылдары магниттік ядро жады компьютерлік жадтың негізгі түріне айналды, қазіргі заманғы стандарттар бойынша салыстырмалы түрде аз жад көлемін ұсынды. Дегенмен, дамудың бастапқы кезеңдерінде де Есептеу тапсырмалары күрделене түскен сайын көбірек жадқа деген қажеттілік айқын болды.
Кейінгі онжылдықтарда жартылай өткізгіш технологияларда айтарлықтай жетістіктерге қол жеткізілді, нәтижесінде динамикалық жедел жады (DRAM), кейінірек флэш-жады пайда болды. Бұл инновациялар деректерді сақтау саласында төңкеріс жасап, тығыздықты арттыруға, қол жеткізу уақытын жылдамдатуға және бір биттің құнын төмендетуге мүмкіндік берді. NAND флэш-жадын енгізу, атап айтқанда, SSD дискілерін әртүрлі электрондық құрылғыларға кеңінен енгізудің маңызды кезеңі болды.
Соңғы жылдары жадтың кеңею қарқыны тез жеделдеді, бұл технологиялық жетістіктер мен нарықтағы сұраныстың үйлесуіне байланысты. Өндірушілер 3D сақтау, көп деңгейлі ұяшық (MLC) және NAND Flash үш деңгейлі ұяшық (TLC) сияқты инновацияларды, сондай-ақ резистивті жедел жад (RRAM) және фазалық ауысу жады (PCM) сияқты тұрақты емес жадтың жаңа технологияларын қолдана отырып, жад шекараларын үнемі кеңейтіп отырады. Сонымен қатар, жасанды интеллект (AI), үлкен деректерді талдау, виртуалды шындық (VR) және кеңейтілген шындық (AR) сияқты үлкен көлемдегі деректерді қажет ететін қосымшалардың пайда болуы жадтың көбірек қажеттілігін тудырды. Бұл қолданбалар жеткілікті сақтау орнын ғана емес, сонымен қатар деректерге жылдам және тиімді қол жеткізуді қажет етеді, бұл заманауи есептеу тапсырмаларының талаптарына бейімделген жоғары өнімді жад шешімдерін әзірлеуді ынталандырады.
Болашаққа көз жүгіртсек, электронды құрылғылардағы жад көлемінің өсу үрдісі бәсеңдемейді деп айтуға болады. Мур заңы қиындықтарға тап болғанымен, жақын болашақта жад көлемінің экспоненциалды түрде өсуін қамтамасыз ете отырып, жартылай өткізгіш құрылғыларды масштабтау үшін әлі де нұсқаулық болып табылады. Сонымен қатар, жаңа жад архитектураларын, материалдар мен өндірістік процестерді құруға бағытталған үздіксіз зерттеулер мен әзірлемелер жадтың тығыздығын, өнімділігі мен энергия тиімділігін одан әрі арттыруға уәде береді.
MRAM (магниторезистивті кездейсоқ қол жетімді жедел жады), FeRAM (ферроэлектрлік жедел жады) және мемристорлар сияқты жаңа технологиялар қолданыстағы технологиялардың ең жақсы сипаттамаларын біріктіретін, олардың шектеулерін еңсере отырып, келесі буын жад шешімдерін жасауға кең мүмкіндіктер ашады. Сонымен қатар, 3D интеграциясының, нейроморфтық және кванттық есептеулердің жетістіктері осы трансформациялық технологиялардың бірегей талаптарын қанағаттандыру үшін жадыны жобалау мен басқарудың жаңа парадигмаларын қолдануды қажет етуі мүмкін.
Электрондық құрылғылардағы жад көлемін ұлғайту үрдісі көптеген артықшылықтар мен мүмкіндіктерді ашса да, ол айтарлықтай қиындықтармен бірге келеді. Негізгі мәселелердің бірі-үлкен көлемдегі жадты қажет ететін құрылғыларды қуаттандыру үшін энергияға сұраныстың артуы, әсіресе мобильді және батареямен жұмыс істейтін жүйелерде. Бұл мәселені шешу тек қуаты аз жад технологиясының жетістіктерін ғана емес, сонымен қатар қуатты тұтынуды азайту үшін бағдарламалық жасақтама алгоритмдері мен жүйелік архитектураны оңтайландыруды қажет етеді.
Сонымен қатар, деректерге негізделген технологиялардың таралуы деректердің құпиялылығына, олардың қауіпсіздігі мен иелігіне қатысты алаңдаушылық туғызады. Электрондық құрылғылар құпия ақпараттың үнемі өсіп келе жатқан көлемін сақтайтындықтан, деректерді рұқсатсыз кіруден, кибершабуылдардан және хакерлерден қорғау өте маңызды. Бұл сақталған деректердің тұтастығы мен құпиялылығын қамтамасыз ету үшін сенімді шифрлау схемаларын, аутентификация механизмдерін және деректерді басқару әдістерін қажет етеді.
Сонымен қатар, электронды құрылғылар арқылы жасалған және сақталған деректердің үлкен көлемі деректерді басқаруға, оларды табуға және талдауға қиындық тудырады. Дәстүрлі файлдық жүйелер мен сақтау архитектуралары инновациялық сақтау шешімдерін, деректерді қысу әдістерін және таратылған есептеу жүйелерін әзірлеуді қажет ететін заманауи деректер жиынтығының ауқымы мен күрделілігін жеңе алмайды.
Технологиялық және инженерлік мәселелерден басқа, электронды құрылғылардағы жад көлемінің ұлғаю тенденциясы елеулі әлеуметтік салдарға әкеледі. Смартфондардың, әлеуметтік медиа платформалардың және бұлттық қызметтердің кең таралуы адамдардың қарым-қатынас жасау, бірлесіп жұмыс істеу және ақпаратты тұтыну тәсілдерін өзгертті. Алайда, цифрлық тәуелділік, ақпараттың шамадан тыс жүктелуі және жеке өмірге қол сұғылмаушылықтың бұзылуы туралы алаңдаушылық өзекті қоғамдық мәселелерге айналды.
Сонымен қатар, цифрлық алшақтық сақталады, өйткені демографиялық, әлеуметтік-экономикалық және географиялық белгілер бойынша технологияға қол жетімділік пен цифрлық сауаттылықта әлі де айырмашылықтар бар. Бұл алшақтықты жою адамдарға цифрлық экономика мен қоғамға толық қатысуға мүмкіндік беретін арзан құрылғыларға, сенімді байланысқа және білім беру ресурстарына тең қол жетімділікті қамтамасыз ету үшін келісілген күш-жігерді қажет етеді.
1.4 Жүйелерде қоқыс жинау
Қоқыстарды жинауды Джон Маккарти шамамен 1959 жылы Lisp-те жадыны қолмен басқаруды жеңілдету үшін ойлап тапқан және бұл бағдарлама енді пайдаланбайтын нысандар алып жатқан қоқыстарды немесе жадты босатуға тырысатын жадыны автоматты басқарудың бір түрі. Қоқыс жинау-Бұл жадты қолмен басқаруға қарама-қарсы, онда бағдарламашы қандай нысандарды босатып, жад жүйесіне қайтару керектігін көрсетуі керек. Қоқыстарды жинау бағдарламадағы жалпы өңдеу уақытының едәуір бөлігін алуы мүмкін және өнімділікке айтарлықтай әсер етуі мүмкін. Жақсы іске асырумен және жадтың жеткілікті көлемімен, қосымшаға байланысты, қоқысты жинау жадты қолмен басқаруға қарағанда жылдамырақ болуы мүмкін, ал керісінше де дұрыс болуы мүмкін және бұл бұрын қоқысты жинаудың оңтайлы емес алгоритмдерінде жиі болған. Қолданыстағы бағдарламалау тілдерінің көпшілігі тілдің спецификациясында анықталған негізгі компонент ретінде қоқыстарды жинауды қажет етеді, сондықтан оларды қоқыс жинайтын тілдер деп атайды. C және C++ сияқты басқа тілдер жадты қолмен басқаруға арналған, бірақ арнайы кітапханалар арқылы қоқыс жинағышты қамтуы мүмкін: ең көп тарағаны-консервативті қоқыс жинаушы Boehm-Demers-Weiser, оны C malloc немесе C NE new үшін қоқыс жинағышты ауыстыру ретінде пайдалануға болады. D және Nim сияқты кейбір басқа тілдер пайдаланушыға жадты қолмен басқару әдістерін немесе қоқыс жинауды қолдануға шешім қабылдауға мүмкіндік беретін біріктірілген тәсілді қолдана алады. Жадты басқарудың қолмен тәсілі белгілі бір контексте максималды жылдамдықты қажет ететін кодтың кішкене бөлігі қажет болған кезде қолайлы болуы мүмкін. Шындығында, көптеген адамдар қоқысты қолмен жинау үшін қажет болғаннан бес есе көп жадты қажет етеді деп санайды, бұл өнімділіктің төмендеуіне әкеледі. Сонымен қатар, жұмыс уақытында қоқыстың қашан жиналатынын болжау мүмкін емес, бұл процестің тоқтап қалуына әкеледі және бұл транзакцияларды өңдеу сияқты белгілі бір контексттерде мәселе болуы мүмкін. Сонымен қатар, қоқыс жинауды қадағалау сияқты кейбір қоқыс жинау әдістері детерминирленбейді, өйткені қоқыс деп белгіленген нысан ақырында жиналады, бірақ оның қашан және қашан болатынын көрсету мүмкін емес. Детерминирленбеу қоқыс жинау тәсілін ресурстарды алу және инициализация (RAII) сияқты басқа қолмен жадты басқару әрекеттерімен біріктіре алмауға әкеледі, бұл пайдаланушының өзара әрекеттесу терезелері мен файлдары сияқты GCed емес ресурстарды басқаруға көмектеседі. Әдетте, жадты қолмен басқаруды қажет ететін жүйеде қолмен басқарылатын ресурс қолмен басқарылатын басқа объектінің бөлігі болуы керек. Қоқысты жинаудың негізгі мәселелері сипатталғаннан кейін, ол шешетін жадыны басқару мәселелерін де сипаттау қажет, бұл бағдарламашыны көптеген контексттерде болжау өте қиын болатын көптеген жиі қателіктерден босатады. Бұл қателер жадты босатумен байланысты, мысалы, меңзер жойылған белгілі бір нысанды қамтуы керек бос жад ұяшығына байланған кезде пайда болатын меңзердің қатып қалуы сияқты көптеген мәселелерді тудыруы мүмкін. Егер меңзер көріну аймағынан тыс айнымалының мекен-жайымен байланысты болса, осылайша жойылып, болжанбайтын нәтижелерге әкелуі мүмкін, бұл қатені анықтауда қиындықтар тудыруы мүмкін. Сонымен қатар, қосарланған босату қателері - бұл бағдарламашының жад ұяшығын екі рет босатуынан туындаған қателердің тағы бір жиі кездесетін түрі, ал осы уақыт ішінде оны жаңа объект бөле алады. Тағы бір маңызды мәселе-жадтың ағып кетуі, ол жад объектілерінің қол жетімді болмауынан туындауы мүмкін, сондықтан оларды босату мүмкін емес. Бұл қателердің көпшілігі қауіпсіздіктің ағып кетуіне әкелуі мүмкін және оларды хакерлер құпия деректерге қол жеткізу үшін қолдана алады. Қоқыс жинау бағдарламашыны жадыны басқару тәжірибесінен босатудың орнына, жоғарыда аталған барлық мәселелерді шешеді немесе айтарлықтай ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz