Constructing an Efficient Model to Inspire Design Education Sustainability in Rural Areas

Kuo-Kuang Fan 1, Xiang-Ming Zhong 1,* , Ye Xu 2 and Bao-Jun Zhang 3 1 Graduate School of Design, National Yunlin University of Science and Technology, Yunlin 64002, Taiwan; fankk@yuntech.edu.tw 2 Department of Art, Minnan Normal University, Zhangzhou 363000, Fujian, China; olivexu@foxmail.com 3 New Media College, Zhejiang University of Media and Communications, Hangzhou 310018, Zhejiang, China; zbjhover@zju.edu.cn * Correspondence: josephzhong@foxmail.com; Tel.: +886-0976-911-786


Introduction
Over the past few decades, declining hardware costs have rapidly increased the penetration and applications of computers and computer technology.Major economies, such as the U.S., the U.K., Japan, China, and Russia boast solid information infrastructures and command large markets in terms of users.These countries are in a favorable position to develop the information industry by improving data computing efficiency and information processing capabilities.In response to the growth and development of the global information industry, information and communication technology has become an 'essential' to drive innovations and industry transformations.
From Bauhaus to MIT Media Labs, from CAD (computer-aided design) to CAM (computer-aided manufacturing), the impact and contributions of machines and computers on design education are groundbreaking, which has enriched the contents and the depth of design types for computer-aided education and computer-aided learning [1].There are studies on the effects of software and technical operations on drafting and modeling as part of the design process [2][3][4][5], as well as the examination of Sustainability 2018, 10, 3562; doi:10.3390/su10103562www.mdpi.com/journal/sustainabilityuser experience, human-machine interactions, and cognitive science [6][7][8].In fact, computers have become a pivotal element in design education, and the increased number of relevant studies is evidence of the growing importance of computer technology in design education; however, many issues are yet to be explored and resolved.In other words, computers and IT technology have become resources integral to design education.The prevalence of educational resources is highly relevant to economic development.Computer-aided learning (CAL) provides a reliable learning support, a method to introduce information technology, and a measurement for the levels of economic development and modernization.The majority of studies on CAL focus on developed countries, such as the U.S., Australia, New Zealand, and Germany [9], and it was only a few years ago that academics started to pay attention to developing countries and rural areas [10].Through the studies of REAP (Rural Education Action Program) research in China and other developing countries, they indicated that computers and innovative education software can dramatically enhance academic achievements, even in less-than-ideal learning environments.More than half of the global population resides in rural areas, where resources are scarce.Relevant policies, international organizations, and social efforts can help to improve the living conditions and environments of impoverished regions.On the basis of design practice, Papanek suggested the vision of "designs for the real world".As a matter of fact, the concept of social design has been progressing and developing in developing countries and rural areas [11].In the basic context of education [3], and particularly regarding elementary and high school education in rural areas, most empirical studies focus on the teaching methods of mathematics and languages, while there is very limited literature on the teaching of design subjects, which shows a lack of attention to local design education in rural areas.The developments of the design concepts at the bottom of the pyramid have been attracting attention to design issues and solutions in developing countries and rural areas.On the other hand, the existence of these problems also means the possibility of new markets and 'experimental labs'.
This paper aims to develop an architecture of applied value for design education in rural areas.According to the issues of actual situations in rural areas, we constructed a kind of central-kitchen model, and then we designed the MMAFS algorithm for improving the effectiveness and feasibility of this central-kitchen model.A case study was invited to compare the relationships between teaching demand and funds investment before and after central-kitchen model and finally put forward a set of practicable computer-aided design education scheme of rural areas.

Design for the Rural Education
At the annual meeting of the World Economic Forum in Davos in January 2005, the MIT Media Lab initiated a non-profit organization, OLPC (One Laptop per Child), by producing version of XOlaptops at a unit cost of less than $100, in order that governments in developing countries can distribute laptops to children to narrow the knowledge gap.While the final unit cost was higher than $100, this project gained significant traction in many developing countries.The XO laptops used today are the result of in-depth exploration into look-and-feel preferences, interface design, human-machine interaction, and normal operations under harsh conditions.The REAP (Rural Education Action Program) initiative of Stanford University evaluated the effectiveness of XO laptops, and indicated that the computer literacy of students with access to computers for educational purposes improves immensely.This is particularly the case for students with no prior experience with computers or the Internet.This shows that XO laptops are beneficial, to a certain degree, to enhance the computer resources and learning outcomes of developing countries and rural regions.With the increasing coverage of the Internet, students in rural areas can access more information and acquire more knowledge.A large-scale investigation of elementary schools throughout China suggests a huge digital divide (i.e., computer and Internet literacy) between the students in public schools of rural areas and urban areas.This digital divide is obvious when the students in urban and rural areas access computer applications and learning software.This demonstrates the need for a reasonable and professional teaching model to facilitate interactions among teachers, computers/Internet, and students.
The traditional teacher-centered education remains the mainstream method throughout the elementary and high schools in the rural areas of China [12].Many innovative teaching techniques to enhance the learning effectiveness of elementary and high school students are not suitable in rural areas, due to the cultural and economic uniqueness of these students, such as the method of student-centered teaching [13].In fact, the guidance and assistance of teachers is essential in the elementary and high schools of rural regions [14].Due to growing digitalization and social media, the interactions between people are now in 'topological milieu' in developed countries, societies, and cultures.If we address the education issues in rural communities with habitual thinking and modern perspectives, we would garble their 'needs' and 'demands'.When computers and the Internet become part of the education equation in rural areas, it is critical to strike a balance with the traditional teaching situation.Some scholars criticize the OLPC projects from the perspective of resource allocation in developing countries by arguing that one-to-one laptops are not suitable to rural areas [15].An in-depth examination of the education milieu unique to rural communities helps us to revisit the values and implications of initiatives similar to OLPC, which will help the formulation of the strategies in computer-assisted design education to be more realistic to the local context.

Making Design Education Suitable for Rural Areas
The problems in rural areas are more than economic issues, as there are challenges associated with the harshness of medical conditions, the insufficiency of medical equipment, the shortage of medical supplies, and the safety of drinking water.In addition to solutions to the minimum level of living standards, it is also necessary to consider the local cultures of rural areas.
In China, the people in rural areas have been relocating to mid-sized cities and metropolitans, due to growing urbanization.As industries develop and upgrade, unskilled workers are faced with being phased out or settling for low-paid jobs.Meanwhile, the limited resources available for education in rural areas mean difficult access to information.For children living in remote regions, schools are a sacred place worthy of a pilgrimage over troubled waters and rugged mountains.To strengthen their economic power, all the governments around the world have been addressing rural development issues through policy support, which has the purpose of accelerating the transformation of rural areas by increasing investments in information and networking technology.This will drive regional developments, as evidenced by the emergence of e-Commerce in rural communities.The diffusion of information allows effective supplies from local industries to match the demands of the markets, which can be achieved through the promotion of local products and publicity of local cultures.Needless to say, education serves as the foundation of everything.
Basic design education first appeared as a foundation course in design and architecture schools, and the most famous was Bauhaus.After the period from the 1920's to the 1960's, basic design education once again attracted academic attention [16,17].The teachers instruct the fundamental knowledge in basic design, while design project supervisors assist students in the development of cognitive and design capability with 3D models and other supporting software programs.Scholars have revisited the educational methodology and confirmed the importance of basic design in design education [18], which requires the integration of fundamental knowledge and design practice, and emphasizes the importance of computer-aided learning and team-work (i.e., interactions between teachers and students, and between students.The education in basic design invigorates the teacher-centered approach by encouraging interactions and co-operation between teachers and students, and between students.Computer-aided learning also increases the cognitive and practical capabilities of students.
As we see that, design education is critical to the thinking and cognitive development of children and teenagers through computer-assisted software.Considering the demand of students in rural areas for computer-assisted design education, while the current economy in many rural areas is not developed and education is an expense investment that is limited, the education equipment for education is severely insufficient.

Methodology
Based on the analysis and discussion of existing research and theory, this paper has developed the architecture of applied value for design education in rural areas.Through the actual situations in rural areas of China, we designed the MMAFS algorithm, and adopt the comparative analysis for proving the advantages and efficiency of this algorithm.We use a case study analysis to compare the relationships between teaching demand and funds investment before and after central-kitchen model and put forward a set of practicable computer-aided design education scheme of rural areas.According to the structure of the above studies, the specific research steps are as follows:

•
Through a detailed analysis of the literature, we discovered that computers have become a pivotal element in design education, and the increased number of relevant studies is evidence of the growing importance of computer technology in design education.By focusing the computer-aided learning, it was only a few years ago that academics started pay attention to developing countries and rural areas, but there is very limited literature on the teaching of design subjects, which shows a lack of attention to local design education and the actual situations of rural areas.For the above reasons, we put forward a central-kitchen model and its advantages.

•
Based on the actual situations in rural areas of China, and the requirement of application operating in central-kitchen model, we designed the MMAFS algorithm.We compare the MMAFS algorithm with the current popular Segregated lists algorithm and the Buddy algorithm by adopting the comparative analysis method.For proving the efficiency of the MMAFS algorithm, we compare and analyze the time complexity and spatial utilization of this algorithm.In addition, we compared the performance of the two algorithms of MMAFS and the Buddy by experiment.

•
By adopting case study through the practical cases of computer teaching in rural primary and secondary schools in China, we analyzed the existing computer teaching demand of schools, funds investment, and equipment configuration, and compare the relationships between teaching demand and funds investment before and after the central-kitchen model.

The Central Kitchen Model
How to satisfy computer-learning demand for more children as much as possible in the case of limited funds and equipment?In rural areas, the funds and equipment are limited, so improving the utilization of existing resources is the key.Nowadays, cloud-based computer classroom is relatively good way to integrate education resources.However, it is unsuitable for the rural areas.First, the cost of building cloud computing platform is too high.Build yourself?No money and no technology.Rent existing platform?It is a bottomless hole to pay for the platform in the long run.Second, the maintenance and use of cloud computing platform is also a problem, there are no technicians.Last, the rural areas often are far away from cities and towns, the traffic is inconvent and there is no network.Many places are almost isolated from the world.Therefore, in rural areas, a reasonable solution is to build an independent LAN using existing resources.Additionally, the LAN uses the structure of C/S.In order to satisfy more students, we should try to improve the efficiency of servers.Therefore, according to the actual situation in rural areas, this paper puts forward a kind of central-kitchen model and the model frame is shown as Figure 1.Service center is composed of several servers in Figure 1 to provide service for several clients.On the configuration of resources, the server in service center has high-end performance and highend configuration is adopted and all application software for teaching is installed in no matter internal storage, or hardware; however, client adopts low-end configuration or diskless workstation and main works are completed in a server terminal to reduce expenses of clients as much as possible.
The whole system frame can adjust resource distribution ratio of service center equipment and client equipment of the central kitchen, according to funds investment and practical demand dynamic conditions for teaching during establishment, while there are three corresponding kinds of modes in application:


Mode1: Service terminal adopts multi-user and multi-task operation system and client adopts a diskless workstation and can load in service terminal remotely, in order to use various applications of service terminal. Mode2: Service terminal adopts multi-user and multi-task operation system and client adopts a host computer with low-end configuration and the client operates the browser and various applications in the server terminal that can be used through browser plugins. Mode3: Service terminal adopts multi-user and multi-task operation system and client adopts a host computer with low-end configuration and the client can load in service terminal remotely and uses various applications of service terminal.
Comparing the three kinds of modes, diskless workstation is cheaper than host computers with low-end configurations, which saves expenses, while because the diskless workstation cannot save user file, file can only be stored in the server terminal; in mode 2, the client uses various applications in server terminal by browser plugins, so it shall take overhead of various application plugins development into account and some plugins are not more compatible with the browser.
This central-kitchen model has the following advantages: 1. Expense saving.In traditional experiment computer room, configuration of all computers is the same, while in practical application, performance of many computers is not utilized sufficiently, and there is large leisure for resources, such as CPU, storage, and network bandwidth, etc.In addition, the number of clients in computer room is often numerous, so you can use a small number of the servers with high-end configuration to provide services, while a large number of clients are using low-end configuration or even workstations.2. Convenient management.The centralized central-kitchen work mode is more convenient for equipment management.For computer teaching, terminal users tend to use the same teaching software and it is not necessary for each client to be equipped with the same software, which Service center is composed of several servers in Figure 1 to provide service for several clients.On the configuration of resources, the server in service center has high-end performance and high-end configuration is adopted and all application software for teaching is installed in no matter internal storage, or hardware; however, client adopts low-end configuration or diskless workstation and main works are completed in a server terminal to reduce expenses of clients as much as possible.
The whole system frame can adjust resource distribution ratio of service center equipment and client equipment of the central kitchen, according to funds investment and practical demand dynamic conditions for teaching during establishment, while there are three corresponding kinds of modes in application:

•
Mode1: Service terminal adopts multi-user and multi-task operation system and client adopts a diskless workstation and can load in service terminal remotely, in order to use various applications of service terminal.

•
Mode2: Service terminal adopts multi-user and multi-task operation system and client adopts a host computer with low-end configuration and the client operates the browser and various applications in the server terminal that can be used through browser plugins.

•
Mode3: Service terminal adopts multi-user and multi-task operation system and client adopts a host computer with low-end configuration and the client can load in service terminal remotely and uses various applications of service terminal.
Comparing the three kinds of modes, diskless workstation is cheaper than host computers with low-end configurations, which saves expenses, while because the diskless workstation cannot save user file, file can only be stored in the server terminal; in mode 2, the client uses various applications in server terminal by browser plugins, so it shall take overhead of various application plugins development into account and some plugins are not more compatible with the browser.
This central-kitchen model has the following advantages: 1.
Expense saving.In traditional experiment computer room, configuration of all computers is the same, while in practical application, performance of many computers is not utilized sufficiently, and there is large leisure for resources, such as CPU, storage, and network bandwidth, etc.In addition, the number of clients in computer room is often numerous, so you can use a small number of the servers with high-end configuration to provide services, while a large number of clients are using low-end configuration or even workstations.

2.
Convenient management.The centralized central-kitchen work mode is more convenient for equipment management.For computer teaching, terminal users tend to use the same teaching software and it is not necessary for each client to be equipped with the same software, which greatly increases the burden for software installation, maintenance, and management.Therefore, you can install intensive application software on the server terminal, which not only facilitates the upgrade and maintenance of the software, but also reduces the expenses of client.
We know that the centralized model has high requirements for server terminal and server tends to be performance bottleneck and there is a so-called single-point failure, so once the server fails, the whole business of system will be interrupted.So how does a central kitchen model proposed avoid single-point failure?Firstly, in service center, we relieve single-point failure by adopting equipment with high-end configuration as a server by improving the performance of the server; secondly, several servers are deployed in the service center and load balance is implemented between multiple servers to prevent all clients from being connected to a single server and further to mitigate single-point failure; then, in the service center, a part of the servers is left as the backup server, which plays the role of disaster tolerance; when the master server fails, a backup server will continue to work in place of master server to ensure business continuity.Finally, this central-kitchen model is mainly used for computer room construction in rural schools, which is generally a LAN environment and the current LAN bandwidth has already reached the gigabit; in addition, establishing wholly switching network by adopting interchanger can further improve the LAN bandwidth access, so as to meet the demand of data transmission between client and service center.

MMAFS Algorithm
It is mentioned previously that there are three kinds of work modes for this central-kitchen mode in application and it is required that the server terminal can run multiple applications at the same time for either work mode; it is known that the program runs in memory, which has a higher requirement for server terminal memory management.It can be said that efficient memory management is the basis for the realization of this application.Therefore, based on the application model, this paper proposes an efficient memory management algorithm to effectively manage memory resources in the server terminal.
In order to manage limited memory for servers effectively, we designed MMAFS, which is universal, allocation fast, high space utilization rate, and has complete functions of memory allocation, release, and merging.
The input of MMAFS is a large block of sequential memory.Specifically, MMAFS regards the first address and length of the memory that needs to be managed as an input.At the beginning, the sequential memory will be divided into memory units with the same size, and these blocks are the smallest memory units managed by MMAFS.For example, we can define the smallest memory unit as 4-Byte, 8-Byte or 16-Byte according to our requirement.

Data Structure
To manage the memory blocks, three data structures are defined, the "FreeList", the "Max_Free_Block" and the "MemoryBlock", which are used to record the information of memory blocks, including the information of allocated memory and free memory.
(1) Array "FreeList" The serial memory need to be managed will be divided into memory units with the same size first.The memory unit is the minimum unit managed by MMAFS.Array "FreeList" is defined to record the information of free memory unit.
int FreeList[N]; N is the amount of memory units.Suppose N is 16, the "FreeList" is initialized as Figure 2.
The serial memory need to be managed will be divided into memory units with the same size first.The memory unit is the minimum unit managed by MMAFS.Array "FreeList" is defined to record the information of free memory unit.
int FreeList[N]; N is the amount of memory units.Suppose N is 16, the "FreeList" is initialized as Figure 2.
The subscript of array "FreeList" reflects the size of free memory block.The value of "FreeList[n]" points to the first address of the linked list of the free memory block with size n + 1.If there is not the free memory block with the corresponding size, the value will be −1.For example, according to Figure 2, at the beginning, the whole memory is not allocated, so there is a free memory block with size 16, the "FreeList [15]" is 0 which points to the first address of the memory.Since we use array to manage the memory unit, the value of "FreeList [15]" is the subscript of the first memory unit."FreeList [0] "~" FreeList [14]" are all initialized as −1.
Along with the memory allocation, release and merge, the FreeList will record the subscript of the head of the free linked list with the corresponding size.The process will be introduced later.
(2) Data "MemoryBlock" Data structure "MemoryBlock" is defined as follows: typedef struct _tag_memoryblock { int first; int second; }MemoryBlock; MemoryBlock, memBlk[N]; "MemoryBlock" contains only two member variables, which is used to record the information of memory units.For every memory unit, there is a "MemoryBlock".Array "memBlk" is used to store "MemoryBlock".The size of array "memBlk" N is the amount of memory units.Thus, the subscript of array is just right the serial number of unit.Through array subscript, the memory unit can be located quickly, and that is very important for quick memory allocation.
In order to save the internal memory used by MMAFS, the member variables of "MemoryBlock" are multiplexing according to the usage of memory units.No matter occupied or free block, it may include 1, 2, or n (n is bigger than 2) basic memory units.Thus, shown in Figure 3, there are six situations of the memory units in total.For each situation, the information recorded in data structure "MemoryBlock" is different.The subscript of array "FreeList" reflects the size of free memory block.The value of "FreeList[n]" points to the first address of the linked list of the free memory block with size n + 1.If there is not the free memory block with the corresponding size, the value will be −1.For example, according to Figure 2, at the beginning, the whole memory is not allocated, so there is a free memory block with size 16, the "FreeList [15]" is 0 which points to the first address of the memory.Since we use array to manage the memory unit, the value of "FreeList [15]" is the subscript of the first memory unit."FreeList [0] "~" FreeList [14]" are all initialized as −1.
Along with the memory allocation, release and merge, the FreeList will record the subscript of the head of the free linked list with the corresponding size.The process will be introduced later.
(2) Data "MemoryBlock" Data structure "MemoryBlock" is defined as follows: typedef struct _tag_memoryblock { int first; int second; }MemoryBlock; MemoryBlock, memBlk[N]; "MemoryBlock" contains only two member variables, which is used to record the information of memory units.For every memory unit, there is a "MemoryBlock".Array "memBlk" is used to store "MemoryBlock".The size of array "memBlk" N is the amount of memory units.Thus, the subscript of array is just right the serial number of unit.Through array subscript, the memory unit can be located quickly, and that is very important for quick memory allocation.
In order to save the internal memory used by MMAFS, the member variables of "MemoryBlock" are multiplexing according to the usage of memory units.No matter occupied or free block, it may include 1, 2, or n (n is bigger than 2) basic memory units.Thus, shown in Figure 3, there are six situations of the memory units in total.For each situation, the information recorded in data structure "MemoryBlock" is different.), "first" is -1 means that the unit has been occupied, "second" is 1, which means that the allocation block contains 1 memory unit.(II) allocation block with 2 units: memBlk allocation block with n units: Figure 3c is the example of allocation block with 6 memory units.
The meaning of "memBlk" of the first unit and the last unit is the same as (a) and (b), the value of "memBlk" of the middle units are 0. (I) allocation block with 1 units: memBlk , "first" is −1 means that the unit has been occupied, "second" is 1, which means that the allocation block contains 1 memory unit.(II) allocation block with 2 units: memBlk (III) allocation block with n units: Figure 3c is the example of allocation block with 6 memory units.The meaning of "memBlk" of the first unit and the last unit is the same as (a) and (b), the value of "memBlk" of the middle units are 0. (IV) Free block with 1 units: For free memory unit, variable "first" and "second" are used as a pointer to chain the free memory block with the same size as a two-way linked list."First" point to the last free memory block, "second" point to the next free memory block.(V) Free block with 2 units: memBlk to the previous free memory block with 2 units.memBlk[n+1].second, point to the next free memory block with 2 units.(n = 2m, 0 ≤ m < N 2 ) (VI) Free block with n units: Figure 3f is the example of free block with 6 memory units.The meaning of the value of "memBlk" is the same as above.
(3) Variable "Max_Free_Block" Variable "Max_Free_Block" is used to record the maximum size of the free memory block.It is defined as follows: int Max_Free_Block; The flow chart of memory allocation is shown in Figure 4.When allocating memory, according to the memory size required, for example n memory units, we look up array "FreeList[n − 1]" first.If the value is not −1, which means that the free memory linked list with the size n is not empty, and the "FreeList[n − 1]" points to the head of the free memory block linked list, then it is returned to the user.However, if the value is −1, which means that the linked list with size n is empty, then refer to the variable "Max_Free_Block", we will allocate memory from the maximum free memory block.Of course, memory allocation, "FreeList" "Max_Free_Block" should be updated.(IV) Free block with 1 units: For free memory unit, variable "first" and "second" are used as a pointer to chain the free memory block with the same size as a two-way linked list."First" point to the last free memory block, "second" point to the next free memory block.(V) Free block with 2 units: memBlk ) (VI) Free block with n units: Figure 3f is the example of free block with 6 memory units.The meaning of the value of "memBlk" is the same as above.
(3) Variable "Max_Free_Block" Variable "Max_Free_Block" is used to record the maximum size of the free memory block.It is defined as follows: int Max_Free_Block; The flow chart of memory allocation is shown in Figure 4.When allocating memory, according to the memory size required, for example n memory units, we look up array "FreeList[n-1]" first.If the value is not -1, which means that the free memory linked list with the size n is not empty, and the "FreeList[n-1]" points to the head of the free memory block linked list, then it is returned to the user.However, if the value is -1, which means that the linked list with size n is empty, then refer to the variable "Max_Free_Block", we will allocate memory from the maximum free memory block.Of course, after memory allocation, "FreeList" and "Max_Free_Block" should be updated.

Algorithm Introduction
How does MMAFS work, we give an example to explain it.Suppose there is a 64 Byte serial memory, and the minimum memory unit is 4 Byte, therefore, the serial memory is divided into 16 basic memory units.We suppose the following operations in Table 1.

Algorithm Introduction
How does MMAFS work, we give an example to explain it.Suppose there is a 64 Byte serial memory, and the minimum memory unit is 4 Byte, therefore, the serial memory is divided into 16 basic memory units.We suppose the following operations in Table 1.There are memory allocation and release operations in Table 1.After memory release, MMAFS will check and merge memory fragments.

Initialization
Figure 5 is the initial status before MMAFS running.There are memory allocation and release operations in Table 1.After memory release, MMAFS will check and merge memory fragments.

Initialization
Figure 5 is the initial status before MMAFS running.According to Figure 5, when initialized, there is a free memory block with 16 basic memory units, so there is only one free linked list with size 16, and the linked list has one node."FreeList [15]" is 0 which points to the first memory unit."max_free_block" is 16, which records the maximum free memory block."memBlk[0].first" is 16 means that the size of the free memory block is 16 memory units."memBlk[0].second" is -1, which means that the memory block is free.Note that, the value of the last memory unit is same to the first memory unit, which is used for reverse traversing the twoway linked list of the free memory block."memBlk [1].first" points to the previous node in the linked list, "memBlk [1].second" points to the next node in the linked list.Since, at the beginning, there is only one linked list with one node, they both point to themselves.

Operation 1
Operation 1 allocates 1 memory unit.Figure 6 shows the status after operation 1.The progress of memory allocation refers to Figure 4.For this operation, memory block is allocated from the maximum linked list.After operation 1, the memory unit pointed by "FreeList [15]" will be allocated.Since one unit was allocated, the variable "max_free_list" changed to 15, which means that the maximum free memory block contains 15 memory units."FreeList [15]" became −1."FreeList [14]" will point to the head of the free memory linked list with 15 units.For the memory unit "memBlk[0]", which was allocated, "memBlk[0].first" was -1, which means the memory unit was occupied, "memBlk[0].second" was 1, which means allocating 1 unit."memBlk [1]" will become the memBlk [1] memBlk [15] - FreeList[0] FreeList [1] FreeList [15] max_free_block = 16 FreeList [1] FreeList [15] max_free_block = 15 According to Figure 5, when initialized, there is a free memory block with 16 basic memory units, so there is only one free linked list with size 16, and the linked list has one node."FreeList [15]" is 0 which points to the first memory unit."max_free_block" is 16, which records the maximum free memory block."memBlk[0].first" is 16 means that the size of the free memory block is 16 memory units."memBlk[0].second" is −1, which means that the memory block is free.Note that, the value of the last memory unit is same to the first memory unit, which is used for reverse traversing the two-way linked list of the free memory block."memBlk [1].first" points to the previous node in the linked list, "memBlk [1].second" points to the next node in the linked list.Since, at the beginning, there is only one linked list with one node, they both point to themselves.

Operation 1
Operation 1 allocates 1 memory unit.Figure 6 shows the status after operation 1.There are memory allocation and release operations in Table 1.After memory release, MMAFS will check and merge memory fragments.

Initialization
Figure 5 is the initial status before MMAFS running.According to Figure 5, when initialized, there is a free memory block with 16 basic memory units, so there is only one free linked list with size 16, and the linked list has one node."FreeList [15]" is 0 which points to the first memory unit."max_free_block" is 16, which records the maximum free memory block."memBlk[0].first" is 16 means that the size of the free memory block is 16 memory units."memBlk[0].second" is -1, which means that the memory block is free.Note that, the value of the last memory unit is same to the first memory unit, which is used for reverse traversing the twoway linked list of the free memory block."memBlk [1].first" points to the previous node in the linked list, "memBlk [1].second" points to the next node in the linked list.Since, at the beginning, there is only one linked list with one node, they both point to themselves.

Operations 2-9
Operations 2-9 are all allocation operations.After these operations, the status will be shown in Figure 7. head of free memory linked list with 15 units and is pointed by "FreeList [14]"."memBlk [2].first" and "memBlk [2].second", which will point to the previous and next node in the free memory linked list respectively.

Operations 2-9
Operations 2-9 are all allocation operations.After these operations, the status will be shown in Figure 7.In Figure 7, the circle with number means the operation number.For example, the memory units marked with circle 3, which was allocated in operation 3.

Operation 10
Operation 10 is memory release operation, it releases memory allocated in operation 1. Figure 8 shows the status after operation 10.After operation 10, the memory unit pointed by "memBlk[0]" was released.Thus, there is a free memory block with one unit.Compare Figure 8 with Figure 7, where there are two differences.First, the "memBlk[0].first" is 0, which points to the previous node in the linked list, the "memBlk[0].second" is 0, which points to the next node in the linked list.Second, "FreeList[0]" is 0, which means the head of free memory linked list with one memory unit is 0, which is the first memory unit.From Figure 9 we can see that after this memory release, we need not to merge memory fragments and the maximum free memory block is still 2 units.

Operation 11
Operation 11 releases the memory allocated in operation 7. Figure 9 shows the status after operation 11.

Operation 10
Operation 10 is memory release operation, it releases memory allocated in operation 1. Figure 8 shows the status after operation 10. head of free memory linked list with 15 units and is pointed by "FreeList [14]"."memBlk [2].first" and "memBlk [2].second", which will point to the previous and next node in the free memory linked list respectively.

Operations 2-9
Operations 2-9 are all allocation operations.After these operations, the status will be shown in Figure 7.In Figure 7, the circle with number means the operation number.For example, the memory units marked with circle 3, which was allocated in operation 3.

Operation 10
Operation 10 is memory release operation, it releases memory allocated in operation 1. Figure 8 shows the status after operation 10.After operation 10, the memory unit pointed by "memBlk[0]" was released.Thus, there is a free memory block with one unit.Compare Figure 8 with Figure 7, where there are two differences.First, the "memBlk[0].first" is 0, which points to the previous node in the linked list, the "memBlk[0].second" is 0, which points to the next node in the linked list.Second, "FreeList[0]" is 0, which means the head of free memory linked list with one memory unit is 0, which is the first memory unit.From Figure 9 we can see that after this memory release, we need not to merge memory fragments and the maximum free memory block is still 2 units.

Operation 11
Operation 11 releases the memory allocated in operation 7. Figure 9 shows the status after operation 11.
FreeList [15] max_free_block = 2 FreeList [1] Free [15] max_free_block = 2 FreeList [1] Free [15] max_free_block = 2 After operation 10, the memory unit pointed by "memBlk[0]" was released.Thus, there is a free memory block with one unit.Compare Figure 8 with Figure 7, where there are two differences.First, the "memBlk[0].first" is 0, which points to the previous node in the linked list, the "memBlk[0].second" is 0, which points to the next node in the linked list.Second, "FreeList[0]" is 0, which means the head of free memory linked list with one memory unit is 0, which is the first memory unit.From Figure 9 we can see that after this memory release, we need not to merge memory fragments and the maximum free memory block is still 2 units.head of free memory linked list with 15 units and is pointed by "FreeList [14]"."memBlk [2].first" and "memBlk [2].second", which will point to the previous and next node in the free memory linked list respectively.

Operations 2-9
Operations 2-9 are all allocation operations.After these operations, the status will be shown in Figure 7.In Figure 7, the circle with number means the operation number.For example, the memory units marked with circle 3, which was allocated in operation 3.

Operation 10
Operation 10 is memory release operation, it releases memory allocated in operation 1. Figure 8 shows the status after operation 10.After operation 10, the memory unit pointed by "memBlk[0]" was released.Thus, there is a free memory block with one unit.Compare Figure 8 with Figure 7, where there are two differences.First, the "memBlk[0].first" is 0, which points to the previous node in the linked list, the "memBlk[0].second" is 0, which points to the next node in the linked list.Second, "FreeList[0]" is 0, which means the head of free memory linked list with one memory unit is 0, which is the first memory unit.From Figure 9 we can see that after this memory release, we need not to merge memory fragments and the maximum free memory block is still 2 units.

Operation 11
Operation 11 releases the memory allocated in operation 7. Figure 9 shows the status after operation 11.

Operation 11
Operation 11 releases the memory allocated in operation 7. Figure 9 shows the status after operation 11.
Operation 11 released "memBlk [1]", free memory unit "memBlk[0]", and "memBlk [1]" can be merged to a free memory block with 2 units.Since the "FreeList [1]" is not −1, which means the free memory linked list with 2 units is not empty, so the new free memory block should be placed in the corresponding linked list, and we place it in the head of the linked list.Additionally, when allocating memory from the linked list, we allocate it from the head.

Operations 12-16
According to MMAFS algorithm, after operations 12-16, the status will be shown in Figure 10.Operation 11 released "memBlk [1]", free memory unit "memBlk[0]", and "memBlk [1]" can be merged to a free memory block with 2 units.Since the "FreeList [1]" is not -1, which means the free memory linked list with 2 units is not empty, so the new free memory block should be placed in the corresponding linked list, and we place it in the head of the linked list.Additionally, when allocating memory from the linked list, we allocate it from the head.

Operations 12-16
According to MMAFS algorithm, after operations 12-16, the status will be shown in Figure 10.Through above example, we introduced the process of memory allocation, release and merging of MMAFS.We can see that the MMAFS algorithm is simple and highly efficient.The following part will analyze its performance in detail.

MMAFS Algorithm Analysis
Running efficiency and space utilization rate are two important evaluation standards for memory management algorithms.Taking into account the segregated lists and buddy algorithms are classical, widely used, and many memory algorithms nowadays make them as reference, we compare MMAFS with these two algorithms.In this section, the time complexity of memory allocation and the space utilization rate among MMAFS, Buddy, and Segregated lists algorithms are compared and analyzed, and the performance of MMAFS and Buddy algorithms are compared through experiments.
(1) Comparative analysis of time complexity and space utilization Table 2 shows the features of these algorithms.

Time Complexity of Memory Allocation
Space Utilization Rate r-number of memory block with same size.k-the max number of times of memory split.
FreeList [15] Max_free_block = 2 Through above example, we introduced the process of memory allocation, release and merging of MMAFS.We can see that the MMAFS algorithm is simple and highly efficient.The following part will analyze its performance in detail.

MMAFS Algorithm Analysis
Running efficiency and space utilization rate are two important evaluation standards for memory management algorithms.Taking into account the segregated lists and buddy algorithms are classical, widely used, and many memory algorithms nowadays make them as reference, we compare MMAFS with these two algorithms.In this section, the time complexity of memory allocation and the space utilization rate among MMAFS, Buddy, and Segregated lists algorithms are compared and analyzed, and the performance of MMAFS and Buddy algorithms are compared through experiments.
(1) Comparative analysis of time complexity and space utilization Table 2 shows the features of these algorithms.Operation 11 released "memBlk [1]", free memory unit "memBlk[0]", and "memBlk [1]" can be merged to a free memory block with 2 units.Since the "FreeList [1]" is not -1, which means the free memory linked list with 2 units is not empty, so the new free memory block should be placed in the corresponding linked list, and we place it in the head of the linked list.Additionally, when allocating memory from the linked list, we allocate it from the head.

Operations 12-16
According to MMAFS algorithm, after operations 12-16, the status will be shown in Figure 10.Through above example, we introduced the process of memory allocation, release and merging of MMAFS.We can see that the MMAFS algorithm is simple and highly efficient.The following part will analyze its performance in detail.

MMAFS Algorithm Analysis
Running efficiency and space utilization rate are two important evaluation standards for memory management algorithms.Taking into account the segregated lists and buddy algorithms are classical, widely used, and many memory algorithms nowadays make them as reference, we compare MMAFS with these two algorithms.In this section, the time complexity of memory allocation and the space utilization rate among MMAFS, Buddy, and Segregated lists algorithms are compared and analyzed, and the performance of MMAFS and Buddy algorithms are compared through experiments.
(1) Comparative analysis of time complexity and space utilization Table 2 shows the features of these algorithms.r-number of memory block with same size.k-the max number of times of memory split.
From Table 2, the time complexity of memory allocation of MMAFS is O(1) or O(2).The allocation process is shown in Figure 5.When we allocate n memory units, "FreeList[n₋1]" or "FreeList[max_free_block₋1]" will be returned.Compared with segregated lists and buddy, the allocation speed of MMAFS is faster and more stable.When allocating memory, MMAFS can return FreeList[0] FreeList [1] FreeList [15] Max_free_block = 2 From Table 2, the time complexity of memory allocation of MMAFS is O(1) or O(2).The allocation process is shown in Figure 5.When we allocate n memory units, "FreeList[n − 1]" or "FreeList[max_free_block-1]" will be returned.Compared with segregated lists and buddy, the allocation speed of MMAFS is faster and more stable.When allocating memory, MMAFS can return the memory immediately.For the space utilization rate, MMAFS is of the best features.It has no external fragmentation, and the controllable internal fragmentation is not larger than the basic memory unit.In addition, it provides the function of memory release and merging, which increases the space utilization rate greatly.
According to above introduction and analysis to MMAFS, it has the following advantages: 1.
Universal use: The input of MMAFS is a large block of serial memory, which has nothing to do with the memory type or size.Thus, the algorithm is universal.2.
Complete function: MMAFS has the functions of memory allocation, release, and merging.

3.
Run quickly: MMAFS can allocate, release, and merge memory quickly.MMAFS algorithm uses array "memBlk" to manage memory units.Through the subscript of array, the memory unit can be located quickly.In addition, by the value of variable "memBlk[n].first" and "memBlk [n].second", the free memory block with the same size are linked to be two-way linked list.Additionally, use array "FreeList" is used to record the head of these linked lists.This enables the appropriate free memory block to be found quickly.When releasing memory, according to the array subscript, we can locate the memory units before and after the released memory block immediately, and judge whether these memory units can be merged or not.Thus merge memory units quickly.For free memory block, we just place it in the corresponding linked list to finish memory retrieval.The process is simple and fast.4.
Low memory fragmentation: MMAFS has not external fragmentation.The internal fragmentation of MMAFS is small and controllable, which is determined by the size of the memory unit.

5.
High memory utilization rate: MMAFS has a low memory fragment.Moreover, it provides the function of memory defragmentation.Thus, it can make full use of the memory. (
Experimental method: First allocate 2 MB of continuous storage space from memory as the object of management, then use MMAFS algorithm and Buddy algorithm to allocate, release, and merge the storage space, and record the completion time of the operation.For the MMAFS algorithm, the storage space of 2 MB is divided into 216 32B storage units for management.

(I) Storage allocation speed comparison
The MMAFS algorithm and Buddy algorithm are used for 400, 4000, and 40,000 storage allocations, respectively, to record the allocated time.The results are shown in Table 3 and Figure 11.According to Table 2 and Figure 11, the MMAFS algorithm is faster than the Buddy algorithm.This is because the Buddy algorithm needs to split many times to find the right size of the storage block, each time the allocation of time is variable, but MMAFS algorithm can quickly find the appropriate free block by array subscript positioning and then finish the allocation of storage immediately.In addition, the time consumed in each allocation in MMAFS is relatively fixed, so the speed of memory allocation is faster.The stability of allocation time also explains that the relationship between allocation times and allocation time of MMAFS algorithm in Table 3 increases linearly, the number of allocations increases 10 times and the time consumed almost 10 times.

(II) Overall performance comparison
The overall performance comparison is a comprehensive test of the algorithm allocation, release, merge, and other functions, because the merge functions of the two algorithms are automatically included in the process of storage release, so only the allocation and release functions need to be called.
Similarly, the MMAFS algorithm and Buddy algorithm were used for 400, 4000, and 40,000 comprehensive tests of storage allocation and release, respectively, to record the elapsed time.The results are shown in Table 4 and Figure 12.According to Table 2 and Figure 11, the MMAFS algorithm is faster than the Buddy algorithm.This is because the Buddy algorithm needs to split many times to find the right size of the storage block, each time the allocation of time is variable, but MMAFS algorithm can quickly find the appropriate free block by array subscript positioning and then finish the allocation of storage immediately.In addition, the time consumed in each allocation in MMAFS is relatively fixed, so the speed of memory allocation is faster.The stability of allocation time also explains that the relationship between allocation times and allocation time of MMAFS algorithm in Table 3 increases linearly, the number of allocations increases 10 times and the time consumed almost 10 times.

(II) Overall performance comparison
The overall performance comparison is a comprehensive test of the algorithm allocation, release, merge, and other functions, because the merge functions of the two algorithms are automatically included in the process of storage release, so only the allocation and release functions need to be called.
Similarly, the MMAFS algorithm and Buddy algorithm were used for 400, 4000, and 40,000 comprehensive tests of storage allocation and release, respectively, to record the elapsed time.The results are shown in Table 4 and Figure 12.According to Table 4 and Figure 12, the release and merge speeds of the MMAFS and Buddy algorithms are very fast, and the processing speed is mainly determined by the storage allocation speed.Therefore, the comprehensive performance comparison results are similar to the storage allocation performance comparison results.According to Table 4 and Figure 12, the release and merge speeds of the MMAFS and Buddy algorithms are very fast, and the processing speed is mainly determined by the storage allocation speed.Therefore, the comprehensive performance comparison results are similar to the storage allocation performance comparison results.

Case Study
Guangxi Hepu Fucheng Middle School is located in Guangxi Hepu County and Hepu County is relatively backward in economy among national counties.Fucheng Middle School, as a representative case, can reflect the current situation of the current rural primary and middle schools in computer teaching investment to a great degree.
Basic teaching condition of Fucheng Middle School is as follows: Fucheng Middle School includes senior high school and junior middle school, of which three grades in senior classes and eight classes for each grade; three grades for junior classes and six classes for each grade and about 45 people for each class and there is only one computer room with 45 computers in the whole school.Senior high school and junior middle school students all have computer classes, mainly about use of Windows operation system, use of Office software and basic programming; in online practice, online time of senior high school, and junior middle school is similar and two-class-hour online practice shall be arranged for each student after statistics.
According to current condition of Fucheng Middle School, there are 42 classes in total and each class shall have two-class-hour computer class and 42 × 2 = 84 class-hour classes shall be arranged for each week, while there is only one computer room in Fucheng Middle School and a computer room can be arranged with 40 class hours per week to the maximum according to five days classes per week and eight class hours per day, which cannot satisfy half the demand of students.Due to the limited equipment, Fucheng Middle School has to change link of online practice and to reduce two class hours per week to one class hour per week, which cannot reach expected teaching effect for strong-practicability computer class.
There is condition after adopting central-kitchen model.First is capital investment and there are 45 computers with the same configuration in Fucheng Middle School and the total investment of Fucheng Middle School for computer teaching equipment is calculated as RMB 4000 × 45 = 180,000, namely, the total price RMB 180 thousand according to the price of middle-grade desktop computer on the market-estimated as almost RMB 4000 for each computer.
Second is configuration of equipment and the price of a high-end server is about RMB 15,000; of course, there are more expensive ones, while it is unnecessary for school teaching.Taking IBM server 3650M4 for example, the price is RMB 15,300, with configuration: 4 core CPU 1.8 G; 16 DDR3 memory; hardware IBM 1 TB 7.2 K 6 Gbps SAS2.5, the number of revolutions of standard configuration hardware: 15,000 revolutions, the number of standard configuration hardware: eight, which can be expanded to 16 and a four giga network cards.Client terminal adopts diskless workstation and price of a diskless workstation is RMB 1000.Client terminal connects with the server by interchanger and the price change of interchanger is relatively large; taking Huawei Interchanger for example, middle-class Huawei Interchanger, such as S5700-24TP-SI(AC), is gigabit Ethernet interchanger with 256 Gbps backboard bandwidth, 24 ports, mpps 72 Mpps, and the price is RMB 3300.Low-class Huawei switch S1724G also supports giga transmission rate with 48 Gbps backboard bandwidth, 24 ports, mpps 36 Mpps, and the price is RMB 750.According to practical demand of Fucheng Middle School, it is obvious that a computer room is insufficient and 90 client terminals are required at least, i.e., 90 diskless workstations.How many servers can meet remote login request of 90 workstations?Maximal connection number of each server is related to performance of server; according to performance of IBM server 3650M4, because of four-core CPU and 16 G memory.Generally, a core can dispose eight remote connections and four cores distribute 32 connections, while 16 G memory is sufficient for 32 connections; therefore, three servers are enough and one server is increased, in consideration of redundant backup, to four in total.In addition, in order to improve the performance of LAN and reduce the conflict of the Ethernet, workstations and servers shall be connected to the interchanger and one S1724G Huawei interchanger has 24 ports and 94 devices in total shall be connected to the interchanger, so four interchangers shall be purchased.
According to foresaid analysis, central-kitchen model is adopted and purchase equipment list is shown in Table 5 to meet the computer teaching of Fucheng Middle School: It can be seen from Table 5 that overhead of purchased equipment is RMB 154.2 thousand, which not only satisfies teaching demand of Fucheng Middle School and ensures two-class-hour online time of each student per week, but also saves cost and saves the expense of RMB 25.8 thousand.Therefore, the central-kitchen model proposed in this paper is feasible.

Conclusions
This paper established an architecture of applied value for design education in rural areas.The central-kitchen model meets the requirements of computer-aided learning in the educational milieu, as it allows for close interactions among students, computers, and teachers, which helps to resolve the problems associated with design education in the elementary and high schools of rural areas.As an important role in central-kitchen model, the MMAFS algorithm we designed, is universal, complete function, run quickly, low memory fragmentation, and high memory utilization rate, which ensures the efficiency of the central-kitchen model and it can be widely promoted.
The central-kitchen model is of good sustainability.First, it uses the traditional network application structure the C/S.Which is the basic model of the network application and can never be eliminated by time.Second, we focus on the efficiency of storage resources, by improving the allocation speed of storage resources, and improve the space utilization of storage resources, thereby improving the performance and efficiency of the server.Taking into account the actual situation of people, technology, and economy in rural areas, this can be said to grasp the core of the problem.Last, compared with other resources, the management of storage resources is relatively independent.We only need to know the first address and size of storage space, we can use MMAFS algorithm to manage it.It has good reliability and portability, independent of platform.Thus, it can be applied to many occasions.
Through the case study of Fucheng Middle School, the model which we established can satisfy the teaching demand and ensures two-class-hour online time of each student per week, but also saves the cost, which also proved the feasible of our model.Given the large number of urgent and pertinent issues in developing countries and rural communities, basic design education should be emphasized, which will promote local designs and eventually formulate positive loops in rural ecosystems to resolve local problems.

Figure 1 .
Figure 1.The Central Kitchen Model of Computer-Assisted Design Learning.

Figure 1 .
Figure 1.The Central Kitchen Model of Computer-Assisted Design Learning.

Figure 4 .
Figure 4. Flow Chart of Memory Allocation.

Figure 4 .
Figure 4. Flow Chart of Memory Allocation.
of memory block with same size.k-the max number of times of memory split.Sustainability 2018,10, 3562

Figure 11 .
Figure 11.Comparison of storage allocation performance between MMAFS and Buddy.

Figure 12 .
Figure 12.Comparison of MMAFS and Buddy overall performance.

Figure 12 .
Figure 12.Comparison of MMAFS and Buddy overall performance.

Table 2 .
Comparison of storage management algorithms.

Table 2 .
Comparison of storage management algorithms.

Table 3 .
Comparison of storage allocation performance between MMAFS and Buddy.Comparison of storage allocation performance between MMAFS and Buddy.

Table 4 .
Comparison of MMAFS and Buddy overall performance.

Table 4 .
Comparison of MMAFS and Buddy overall performance.

Table 5 .
Equipment Purchase List.