Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 05.06.2021
Сообщений: 2

Разработка подсистемы управления файлами со способом физической организации файла в виде связанного списка блоков

05.06.2021, 18:04. Показов 1688. Ответов 4

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста написать код, на Python, на тему "Разработка подсистемы управления файлами со способом физической организации файла в виде связанного списка блоков". (Описание) Следующий способ физической организации - размещение в виде связанного списка блоков дисковой памяти. При таком способе в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом - номером первого блока.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2021, 18:04
Ответы с готовыми решениями:

Как преобразовать в физ. организацию файла в виде связанного списка блоков в вид перечня номеров блоков
как преобразовать в физ. организацию файла в виде связанного списка блоков в вид перечня номеров блоков. import math import numpy as np...

Разработка подсистемы управления процессами с алгоритмом планирования в виде сети очередей без обратной связи
Помогите, пожалуйста, разработать код на языке Python в виде подсистемы управления процессами с алгоритмом планирования без обратной связи....

Разработка подсистемы управления памятью
Нужно разработать подсистему управления памятью с сегментной организацией виртуальной памяти и алгоритмом замещения страниц LRU. Честно...

4
05.06.2021, 18:16

Не по теме:

helpplsme, ты только что посмотрел соседнюю тему с точно таким же вопросом. В чем логика создавать еще одну такую же тему? Там не ответят, а здесь ответят?

0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
05.06.2021, 18:28
Тут хоть описание задачи появилось
0
0 / 0 / 0
Регистрация: 05.06.2021
Сообщений: 2
05.06.2021, 18:30  [ТС]
крч, нужно сделать на подобии такого, Тема : Разработка подсистемы управления файлами с непрерывным способом физической организации файла.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import math
import numpy as np
import pandas as pd
import os
 
 
def write():
    # file_size = int(input("Введите размер файла (В байтах) -> "))
    file_size = os.path.getsize(f"{file_name}")
    files_sizes.append(file_size)
 
    block_id = int(input("Введите начальный блок -> "))
    blocks_ids.append(block_id)
 
    # Считаем нужно кол-во блоков, под размер файла
    amount = math.ceil(file_size / 256)
 
    # Выделяем блоки под размер файла (1 блок = 256 байт)
    i = 1
    while i <= amount:
 
        for index, value in enumerate(Physical_organization):
            if block_id == index:
                # Проверяем блок на занятость
                if value == 0:
                    # Заменяем пустой блок, названием файла
                    Physical_organization[index] = file_name
                    print(f"Добавлено в блок №{index}")
                else:
                    print(f"Блок №{index} занят")
        i += 1
        block_id += 1
 
 
if __name__ == '__main__':
    Physical_organization = [0] * 128
    files_names = []
    files_sizes = []
    blocks_ids = []
 
    while True:
        try:
            command = input(">>> ").lower()
 
            if command == 'exit':
                break
 
            elif command == 'add':
                quest0 = input("Вы хотите создать новый файл? (y/n) -> ")
                if quest0 == "y":
                    file_name = input("Введите имя файла -> ")
                    files_names.append(file_name)
                    new_file = open(f"{file_name}", "w+")
                    quest = input("Вы хотите что то записать в файл (y/n) -> ")
                    if quest == "y":
                        text = input("Введите что хотите записать -> ")
                        new_file.write(f"{text}")
                        new_file.close()
                    write()
 
                else:
                    file_name = input("Введите имя файла -> ")
                    files_names.append(file_name)
 
                    write()
 
            elif command == 'all':
                print("Все 128 блоков: ")
                print(np.asarray(Physical_organization))
 
            elif command == 'list':
                df = pd.DataFrame({'Название': files_names,
                                   'Нач. блок': blocks_ids,
                                   'Размер (байт)': files_sizes})
                print(df)
 
            elif command == 'help':
                print("Список команд:\n")
                print("add - добавить файл в;")
                print("new - создать новый файл")
                print("list - вывести список файлов")
                print("all - показать все блоки")
                print("help - отобразить справку;")
                print("exit - завершить работу с программой.")
            else:
                print('Неизвестная команда!')
        except Exception as exc:
            print("Ошибка!!")
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
05.06.2021, 18:33
Если ставить задачу так, то решается она легко.

Шаг 1: создаём файл:
Bash
1
dd if=/dev/zero of=1g.img bs=1 count=0 seek=1G
Шаг 2: выбираем размер блока и сколько в нём зарезервируем под указатель. Пусть указатель будет 64 бита + ещё сколько-то байт отведём под имя файла (какая непозволительная трата ресурсов!)

Шаг 3: ?

Шаг N: PROFIT

В общем, создавай связанный список, в каждой ноде-дефис-блоке храни данные и аккуратно записывай в диск. Начало блока = размер блока * номер блока.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.06.2021, 18:33
Помогаю со студенческими работами здесь

Разработка подсистемы управления процессами с постоянной длительностью кванта
Разработка подсистемы управления процессами с постоянной длительностью кванта.

Разработка подсистемы управления памятью со станично-сегментной организацией виртуальной памяти
Помогите пожалуйста разработать подсистему управления памятью со станично-сегментной организацией виртуальной памяти. На питоне. Не могу...

Разработка подсистемы управления памятью со станично-сегментной организацией виртуальной памяти и алгоритмом замещения с
Помогите пожалуйста. Я прочитал про алгоритм замещения страниц LRU и про станично-сегментную организацию виртуальной памяти. Но я не понял,...

Потроить копию исходного односторонне связанного списка в виде двусвязного списка.
Кто поможет написать алгоритм? Разработать алгоритм,который строит копию исходного односторонне связанного списка в виде двусвязного...

Составить алгоритм,который строит копию односторонне связанного списка в виде двусвязного списка
кто может мне помочь составить алгоритм,который строит копию односторонне связанного списка в виде двусвязного списка?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru