scispace - formally typeset
Search or ask a question
Author

Pramote Kuacharoen

Other affiliations: Georgia Institute of Technology
Bio: Pramote Kuacharoen is an academic researcher from National Institute of Development Administration. The author has contributed to research in topics: Password & Challenge–response authentication. The author has an hindex of 9, co-authored 23 publications receiving 427 citations. Previous affiliations of Pramote Kuacharoen include Georgia Institute of Technology.

Papers
More filters
01 Jan 2003
TL;DR: This paper presents a configurable hardware scheduler architecture which minimizes the processor time wasted by the scheduler and time-tick processing.
Abstract: Many real-time applications require a high-resolution time tick in order to work properly. However, supporting a high-resolution time tick imposes a very high overhead on the system. In addition, such systems may need to change scheduling discipline from time to time to satisfy some user requirements such as Quality of Service (QoS). The dynamic changing of the scheduling discipline is usually associated with delays during which some deadlines might be missed. In this paper, we present a configurable hardware scheduler architecture which minimizes the processor time wasted by the scheduler and time-tick processing. The hardware scheduler is flexible and provides three scheduling disciplines: priority-based, rate monotonic and earliest deadline first. The scheduler in hardware also provides accurate timing. The scheduling mode can be changed at runtime, providing support for a wide range of applications on the same device. The hardware scheduler is provided in the form of an Intellectual Property (IP) block that can be customized according to the designer’s input, to suite a certain application, by a tool we have developed.

112 citations

Patent
17 Oct 2002
TL;DR: In this paper, the target system stores a table with global variables and addresses and a module table with system-wide functions and addresses, and a debugger module provides the table with a local name and address of a variable local to the debugger module.
Abstract: Configuration of a debugger that saves resources and debugs on a target system rather than from a host system The target system stores a table with global variables and addresses, and a module table with system-wide functions and addresses In response to a trigger, a debugger module is loaded from the host system and linked to the target system by causing the debugger module to exchange information with the tables The debugger module uses the table to find a variable address and sets a pointer to the address The debugger module provides the table with a local name and address of a variable local to the debugger module The debugger module uses the module table to find an MT address of a function and sets a pointer to the MT address The debugger module provides the module table with an MT address of a function local to the debugger module

99 citations

01 Jan 2012
TL;DR: The integrity of the text message and the author of the document can be verified with the use of a digital signature and QR code and this method does provide convenience for the user in dealing with a large amount of documents.
Abstract: There are still needs for paper-based documents in certain circumstances where electronic documents cannot efficiently replace them. For example, documents issued by the government such as birth certificates, driver licenses, and passports must be paper-based. With advanced scanning and printing technologies, paper-based document fraud can easily be conducted without significant high cost. In this paper, an implementation of paper-based document authentication is presented. The integrity of the text message and the author of the document can be verified with the use of a digital signature and QR code. The proposed method can be automatic or semi-automatic. It is semi-automatic when the OCR is not accurate and it requires the user to visually compare the text message on the paper and the one obtained from the QR code; however, this method does provide convenience for the user in dealing with a large amount of documents.

56 citations

Patent
17 Oct 2002
TL;DR: In this article, the authors propose to link a new or updated module to an operating system without affecting other modules, and without reboot or recompilation of the operating system, without affecting the other modules.
Abstract: Linking of a new or updated module to an operating system without affecting other modules, and without reboot or recompilation. A core module includes a table of locations of application program interfaces of other modules. A selected module is linked to the core module. Specifically, the module is initialized and provided with a pointer to the core module's table. The table is provided with an address of the APIs of the module. The other modules are unaffected by the linking because they are not provided with the address of the module. A reboot or recompilation of the operating system is unnecessary because the other modules are unaffected. Nevertheless, the other modules have access to the APIs of the module and to each others' APIs through the core module. The other modules include a pointer to the core module's table to access the

38 citations

Proceedings ArticleDOI
03 Mar 2003
TL;DR: A streaming method to partition real-time software into parts which can be transmitted (streamed) to the embedded device and shows a robotics application that without the streaming method is unable to meet its real- time deadline, but with the method, the application is able to met its deadline.
Abstract: Software streaming allows the execution of stream-enabled software on a device even while the transmission/streaming may still be in progress. Thus, the software can be executed while it is being streamed instead of causing the user to wait for the completion of download, decompression, installation and reconfiguration. Our streaming method can reduce application load time seen by the user since the application can start running as soon as the first executable unit is loaded into the memory. Furthermore, unneeded parts of the application might not be downloaded to the device. As a result, resource utilization such as memory and bandwidth usage may also be more efficient. Using our streaming method, an embedded device can support a wide range of realtime applications. The applications can be run on demand. In this paper, a streaming method we call block streaming is proposed. Block streaming is determined at the assembly code level. We implemented a tool to partition real-time software into parts which can be transmitted (streamed) to the embedded device. Our streaming method was implemented and simulated on a hardware-software co-simulation platform in which we used the PowerPC architecture. We show a robotics application that without our streaming method is unable to meet its real-time deadline. However, with our software streaming method, the application is able to meet its deadline. The application load time for this application also improves by a factor of more than 10/spl times/ when compared to downloading the entire application before running it.

22 citations


Cited by
More filters
Book
01 Jan 2006
TL;DR: The author discusses the history and present situation of operating systems, as well as some of the techniques used to design and implement these systems.
Abstract: Table of Contents CHAPTER 1 INTRODUCTION 1.1 WHAT IS AN OPERATING SYSTEM? 1.2 HISTORY OF OPERATING SYSTEMS 1.3 OPERATING SYSTEM CONCEPTS 1.4 SYSTEM CALLS 1.5 OPERATING SYSTEM STRUCTURE 1.6 OUTLINE OF THE REST OF THIS BOOK 1.7 SUMMARY CHAPTER 2 PROCESSES 2.1 INTRODUCTION TO PROCESSES 2.2 INTERPROCESS COMMUNICATION 2.3 CLASSICAL IPC PROBLEMS 2.4 SCHEDULING 2.5 OVERVIEW OF PROCESSES IN MINIX 3 2.6 IMPLEMENTATION OF PROCESSES IN MINIX 3 2.7 THE SYSTEM TASK IN MINIX 3 2.8 THE CLOCK TASK IN MINIX 3 2.9 SUMMARY CHAPTER 3 INPUT/OUTPUT 3.1 PRINCIPLES OF I/O HARDWARE 3.2 PRINCIPLES OF I/O SOFTWARE 3.3 DEADLOCKS 3.4 OVERVIEW OF I/O IN MINIX 3 3.5 BLOCK DEVICES IN MINIX 3 3.6 RAM DISKS 3.7 DISKS 3.8 TERMINALS 3.9 SUMMARY CHAPTER 4 MEMORY MANAGEMENT 4.1 BASIC MEMORY MANAGEMENT 4.2 SWAPPING 4.3 VIRTUAL MEMORY 4.4 PAGE REPLACEMENT ALGORITHMS 4.5 DESIGN ISSUES FOR PAGING SYSTEMS 4.6 SEGMENTATION 4.7 OVERVIEW OF THE MINIX 3 PROCESS MANAGER 4.8 IMPLEMENTATION OF THE MINIX 3 PROCESS MANAGER 4.9 SUMMARY CHAPTER 5 FILE SYSTEMS 5.1 FILES 5.2 DIRECTORIES 5.3 FILE SYSTEM IMPLEMENTATION 5.4 SECURITY 5.5 PROTECTION MECHANISMS 5.6 OVERVIEW OF THE MINIX 3 FILE SYSTEM 5.7 IMPLEMENTATION OF THE MINIX 3 FILE SYSTEM 5.8 SUMMARY CHAPTER 6 READING LIST AND BIBLIOGRAPHY 6.1 SUGGESTIONS FOR FURTHER READING 6.2 ALPHABETICAL BIBLIOGRAPHY APPENDIX A - INSTALLING MINIX 3 APPENDIX B - MINIX 3 SOURCE CODE LISTING APPENDIX C - INDEX TO FILES INDEX

572 citations

Proceedings ArticleDOI
06 Jul 2005
TL;DR: This paper introduces a new schedulability test that improves significantly the percentage of accepted task sets, especially when considering task sets containing heavy tasks, and shows the effectiveness of the proposed test through an extensive set of experiments.
Abstract: Multiprocessor hardware platforms are now being considered for embedded systems, due to their high computational power and little additional cost when compared to single processor systems. When scheduling real-time applications on multiprocessor platforms, a possibility is to use global scheduling, where a scheduling algorithm dynamically assign tasks to processors, and tasks can migrate from one processor to another during their execution. In this paper, we tackle the problem of schedulability analysis of sporadic tasks in global scheduling systems, where the scheduler is the earliest deadline first (EDF) algorithm. We provide two main contributions. First, we show that two recently proposed tests perform poorly when the task set contains heavy tasks (i.e. tasks with high utilization). We also show that neither test dominates the other. As a second contribution, we introduce a new schedulability test that improves significantly the percentage of accepted task sets, especially when considering task sets containing heavy tasks. We show the effectiveness of the proposed test through an extensive set of experiments.

228 citations

Proceedings ArticleDOI
14 Oct 2007
TL;DR: TxLinux is a variant of Linux that is the first operating system to use hardware transactional memory (HTM) as a synchronization primitive, and the first to manage HTM in the scheduler, and integration of transactions with the OS scheduler is discussed.
Abstract: TxLinux is a variant of Linux that is the first operating system to use hardware transactional memory (HTM) as a synchronization primitive, and the first to manage HTM in the scheduler. This paper describes and measures TxLinux and discusses two innovations in detail: cooperation between locks and transactions, and theintegration of transactions with the OS scheduler. Mixing locks and transactions requires a new primitive, cooperative transactional spinlocks (cxspinlocks) that allow locks and transactions to protect the same data while maintaining the advantages of both synchronization primitives. Cxspinlocks allow the system to attemptexecution of critical regions with transactions and automatically roll back to use locking if the region performs I/O. Integrating the scheduler with HTM eliminates priority inversion. On a series ofreal-world benchmarks TxLinux has similar performance to Linux, exposing concurrency with as many as 32 concurrent threads on 32 CPUs in the same critical region.

136 citations