Register or Login To Download This Patent As A PDF
| United States Patent Application |
20040261076
|
| Kind Code
|
A1
|
|
Kondo, Hiroshi
|
December 23, 2004
|
Program processing system, program processing method, and computer program
Abstract
An application program includes a plurality of tasks and is executed in a
multitask environment to allow a plurality of functions to be provided.
Tasks required for realizing each function to be provided and the
execution order are defined as a session. A session manager formed as one
of tasks manages resources for executing a called session and its
execution state. The session operating side can realize a required
function without being aware of the states of the individual tasks
| Inventors: |
Kondo, Hiroshi; (Tokyo, JP)
|
| Correspondence Address:
|
OBLON, SPIVAK, MCCLELLAND, MAIER & NEUSTADT, P.C.
1940 DUKE STREET
ALEXANDRIA
VA
22314
US
|
| Assignee: |
Sony Corporation
Tokyo
JP
|
| Serial No.:
|
817792 |
| Series Code:
|
10
|
| Filed:
|
April 6, 2004 |
| Current U.S. Class: |
718/100 |
| Class at Publication: |
718/100 |
| International Class: |
G06F 009/46 |
Foreign Application Data
| Date | Code | Application Number |
| Apr 9, 2003 | JP | 2003-105840 |
Claims
What is claimed is:
1. A program processing system for executing a program including a
plurality of tasks in a multitask environment provided by a multitask
operating system capable of artificially executing a plurality of tasks
in parallel, comprising: session defining means for defining tasks
required for realizing each function to be provided by the program and
the execution order as a session; and session managing means for managing
resources for executing a called session and its execution state.
2. The program processing system as cited in claim 1, wherein: the session
managing means manages resources of a session by generating instances of
tasks included in a session and managing input/output performed by tasks.
3. The program processing system as cited in claim 1, wherein: the session
managing means operates and manages the execution state of a session in
response to a request from outside of the program.
4. The program processing system as cited in claim 1, wherein: the session
managing means has session registration means in which identification
information of each session in the program and identification information
of tasks constituting each session are previously defined statically, and
performs a session start operation by simultaneously starting all tasks
constituting a session.
5. The program processing system as cited in claim 4, wherein: the session
managing means forms a session management table for recording
identification numbers of a session and session constituent tasks and the
operating states thereof upon start of the session, and manages the
session based thereon.
6. The program processing system as cited in claim 5, wherein: the session
managing means interrupts or restarts a session by simultaneously
interrupting or restarting execution of all session constituent tasks
recorded in the session management table for the associated session
having specified identification information.
7. The program processing system as cited in claim 5, wherein: the session
managing means ends a session by ending simultaneously all session
constituent tasks recorded in the session management table, and deletes
the session management table for the associated session having specified
identification information.
8. The program processing system as cited in claim 1, wherein: session
managing means controls operation of tasks constituting a session in
operation of the session by issuing a system call to the operating
system.
9. A program processing method for executing a program including a
plurality of tasks in a multitask environment provided by a multitask
operating system capable of artificially executing a plurality of tasks
in parallel, comprising the steps of: session defining step for defining
tasks required for realizing each function to be provided by the program
and the execution order as a session; and session managing step for
managing resources for executing a called session and its execution
state.
10. The program processing method as cited in claim 9, wherein: the
session managing step manages resources of a session by generating
instances of tasks included in a session and managing input/output
performed by tasks.
11. The program processing method as cited in claim 9, wherein: the
session managing step operates and manages the execution state of a
session in response to a request from outside of the program.
12. The program processing system as cited in claim 9, wherein: the
session managing step previously and statically registers identification
information of each session in the program and identification information
of tasks constituting each session, and performs a session start
operation by simultaneously starting all tasks constituting a session.
13. The program processing method as cited in claim 12, wherein: the
session managing step forms a session management table for recording
identification numbers of a session and session constituent tasks and the
operating states thereof upon start of the session, and manages the
session based thereon.
14. The program processing method as cited in claim 13, wherein: the
session managing step interrupts or restarts a session by simultaneously
interrupting or restarting execution of all session constituent tasks
recorded in the session management table for the associated session
having specified identification information.
15. The program processing method as cited in claim 13, wherein: the
session managing step ends a session by ending simultaneously all session
constituent tasks recorded in the session management table, and deletes
the session management table for the associated session having specified
identification information.
16. The program processing method as cited in claim 1, wherein: session
managing step controls operation of tasks constituting a session in
operation of the session by issuing a system call to the operating
system.
17. A computer program described in a computer readable form so as to
perform a plurality of functions executed under multitask environment
provided by a multitask operating system capable of artificially
executing a plurality of tasks in parallel, comprising: session defining
means for defining tasks required for realizing each function to be
provided by the program and the execution order as a session; and session
managing means for managing resources for executing a called session and
its execution state.
18. The computer program as cited in claim 17, wherein: the session
managing means includes tasks constituting the computer program.
19. The computer program as cited in claim 17, wherein: the session
managing means manages resources of a session by generating instances of
tasks included in a session and managing input/output performed by tasks.
20. The computer program as cited in claim 17, wherein: the session
managing means operates and manages the execution state of a session in
response to a request from outside of the computer program.
21. The computer program as cited in claim 17, wherein: the session
managing means has session registration means in which identification
information of each session in the computer program and identification
information of tasks constituting each session are previously defined
statically, and performs a session start operation by simultaneously
starting all tasks constituting a session.
22. The computer program as cited in claim 21, wherein: the session
managing means forms a session management table for recording
identification numbers of a session and session constituent tasks and the
operating states thereof upon start of the session, and manages the
session based thereon.
23. The computer program as cited in claim 22, wherein: the session
managing means interrupts or restarts a session by simultaneously
interrupting or restarting execution of all session constituent tasks
recorded in the session management table for the associated session
having specified identification information.
24. The computer program as cited in claim 22, wherein: the session
managing means ends a session by ending simultaneously all session
constituent tasks recorded in the session management table, and deletes
the session management table for the associated session having specified
identification information.
25. The computer program as cited in claim 17, wherein: session managing
means controls operation of tasks constituting a session in operation of
the session by issuing a system call to the operating system.
26. A computer program described in a computer readable form so as to
perform process of program constituting a plurality of tasks under
multitask environment provided by a multitask operating system capable of
artificially executing a plurality of tasks in parallel, comprising:
session defining step for defining tasks required for realizing each
function to be provided by the program and the execution order as a
session; and session managing step for managing resources for executing a
called session and its execution state.
Description
CROSS REFERENCE TO RELATED APPLICATION
[0001] This application claims priority from Japanese Priority Document
No. 2003-015840, filed on Apr. 9, 2003 with the Japanese Patent Office,
which document is hereby incorporated by reference.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] The present invention relates to a program processing system, a
program processing method, and a computer program for executing an
application including a plurality of tasks, and more particularly, to a
program processing system, a program processing method, and a computer
program for executing an application in a multitask environment in which
a plurality of tasks are artificially operated in parallel.
[0004] More specifically, the present invention relates to a program
processing system, a program processing method, and a computer program
for sharing the same task among a plurality of functions when an
application operates the plurality of functions in parallel, and more
particularly, to a program processing system, a program processing
method, and a computer program for managing resources and the executing
state of a task shared among a plurality of functions.
[0005] 2. Description of Related Art
[0006] With innovative advances in LSI (Large Scale Integration)
techniques in recent years, various types of information processing
devices or information communication devices have been developed and
introduced to the market, and penetrated in daily life. In the devices of
such types, a CPU (Central Processing Unit) and other processors execute
predetermined program codes to provide various processing services in an
execution environment provided by an operating system.
[0007] Typically, the operating system has a multitask function in which a
plurality of tasks are executed on a time division basis to make more
tasks than processors look as if they are executed simultaneously. The
use of a multitask operating system allows an application to be
configured as sets of tasks for each function to artificially operate a
plurality of tasks in parallel.
[0008] The operating system has a managing function for each task, but
when a particular function is realized by a plurality of tasks, it does
not provide a mechanism for collectively managing a series of tasks
associated with the function. Specifically, it controls execution of each
task in multitask processing but does not consider the relationship
between tasks. Thus, each task must manage the relationship between tasks
on its own to impair the ease of program writing and ease of
maintainability.
[0009] In addition, a plurality of functions operating in parallel may
wish to share the same task. However, the operating system does not
provide a mechanism for managing the shared task.
SUMMARY OF THE INVENTION
[0010] There is a need to provide a favorable program processing system, a
program processing method, and a computer program which allow the same
task to be shared among a plurality of functions when an application
operates the plurality of functions in parallel.
[0011] There is another need to provide a favorable program processing
system, a program processing method, and a computer program which allow
preferable management of resources and the execution state of a task
shared among a plurality of functions.
[0012] The present invention has been made in view of the aforementioned
problem, and according to a first aspect thereof, the present invention
provides a program processing system for executing a program including a
plurality of tasks in a multitask environment provided by a multitask
operating system capable of artificially executing a plurality of tasks
in parallel, comprising session defining means for defining tasks
required for realizing each function to be provided by the program and
the execution order as a session, and session managing means for managing
resources for executing a called session and its execution state.
[0013] The "system" herein refers to a logical collection of a plurality
of devices (or a function module for realizing a particular function). It
does not matter especially whether each device or the function module is
present in a single housing or not.
[0014] The unit in which an operating system manages and controls program
execution is typically referred to as "tasks." The program processing
system according to the embodiment allows a plurality of tasks to be
present in a program and as a multitask function for executing the
plurality of tasks on a time division basis and switching the tasks
frequently to artificially execute the tasks in parallel. Thus, it looks
as if more tasks exist than processors which are entities for performing
actual calculations and those tasks are simultaneously executed.
[0015] The operating system, however, manages execution of the individual
tasks but does not consider the relationship between the executed tasks.
[0016] Thus, in the present invention, tasks required for realizing a
function and the execution order are defined as "a session" for each
function service. The session managing means manages resources for
executing a called session and the execution state. The resource
management herein includes generation of instances of tasks included in a
session, management of input/output performed by tasks, and the like. The
session operating side can realize a required function without being
aware of the state of individual tasks.
[0017] According to the present invention, the plurality of tasks can be
collectively managed in the form of a session, and advantages can be
provided in development in tasks such as execution efficiency,
productivity, portability, and maintainability. In addition, since a task
can be shared among sessions, development of applications can be
performed more efficiently than conventional development for a single
task.
[0018] The session managing means manages resources of a session by
generating instances of tasks included in a session and managing
input/output performed by tasks.
[0019] In addition, the session managing means operates and manages the
execution state of a session in response to a request from outside of the
program.
[0020] The session managing means has session registration means in which
identification information of each session in the program and
identification information of tasks constituting each session are
previously defined statically. Thus, session start operation can be
performed by simultaneously starting all tasks constituting a session.
[0021] The session managing means forms a session management table for
recording identification numbers of a session and session constituent
tasks and the operating states thereof upon start of the session and
manages the session based thereon.
[0022] For example, the session managing means can interrupt or restart a
session by simultaneously interrupting or restarting execution of session
constituent tasks recorded in the session management table for the
associated session having specified identification information.
[0023] The session managing means ends a session by forcefully ending
simultaneously session constituent tasks recorded in the session
management table, deleting the session management table, and releasing
resources used by the tasks for the associated session having specified
identification information.
[0024] The session managing means can control operation of tasks
constituting a session in operation of the session by issuing a system
call to the operating system.
[0025] According to a second aspect of the present invention, the present
invention provides a computer program including a plurality of tasks and
described in a computer readable form executed in a multitask environment
provided by a multitask operating system capable of artificially
executing a plurality of tasks in parallel to realize a plurality of
functions, comprises session defining means for defining tasks required
for realizing each function to be provided and the execution order as a
session, and session managing means for managing resources for executing
a called session and its execution state.
[0026] The computer program according to the second aspect of the present
invention is a defined computer program described in a computer readable
form to realize predetermined processing on a computer system. In other
words, the computer program according to the second aspect of the present
invention can be installed on a computer system to provide cooperative
effects on the computer system to achieve the effects similar to those of
the program processing system according to the first aspect of the
present invention.
[0027] Other objects, characteristics, and advantages of the present
invention will be apparent from more detailed description, later
described, with reference to an embodiment of the present invention and
the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0028] FIG. 1 schematically shows the configuration of a program
processing system used for realizing the present invention;
[0029] FIG. 2 schematically shows the configuration of an application
program;
[0030] FIG. 3 schematically shows the configuration of an embedded
application in a DVD record/playback device;
[0031] FIG. 4 shows an operation sequence when a playback session is
started in the embedded application in the DVD record/playback device
shown in FIG. 3; and
[0032] FIG. 5 shows an operation sequence when the playback session is
ended in the embedded application in the DVD record/playback device shown
in FIG. 3.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0033] An embodiment of the present invention is hereinafter described
with reference to the drawings.
[0034] A. System Configuration
[0035] FIG. 1 schematically shows the configuration of a program
processing system 10 used for realizing the present invention. As shown
in FIG. 1, the program processing system 10 includes a processor 11, a
RAM (Random Access Memory) 12, a ROM (Read Only Memory) 13, a plurality
of input/output devices 14-1, 14-2, . . . , and a timer 15.
[0036] The processor 11 is a main controller for the operating processing
system 10, and executes various types of program codes such as
applications under control of an operating system (OS). The operating
system is, for example, of an embedded type.
[0037] The unit in which the operating system manages and controls program
execution is typically referred to as "tasks." The program processing
system 10 according to the embodiment allows a plurality of tasks to be
present in a program and as a multitask function for executing the
plurality of tasks on a time division basis and switching the tasks
frequently to artificially execute the tasks in parallel. Thus, it looks
as if more tasks exist than processors which are entities for performing
actual calculations and those tasks are simultaneously executed.
[0038] The operating system assigns a task ID which allows the associated
task to be distinguished from other tasks to each task processed by the
processor 11 to mange execution of each task. However, the operating
system does not consider the relationship between tasks executed.
[0039] On the other hand, an application program executed on the program
processing system 10 includes a plurality of tasks executed in a
multitask environment and can provide a plurality of functions. For
example, an embedded application in a DVD record/playback apparatus
provides a plurality of functions such as record to and playback from a
record surface of a DVD. In this specification, tasks required for
realizing a function and the execution order are defined as "a session"
for each function service to be provided. In addition, a task called "a
session manager" is provided to manage resources for executing a called
session and the execution state. The resource management herein includes
generation of instances of tasks included in a session, management of
input/output performed by tasks, and the like. The session operating side
can realize a required function without being aware of the state of
individual tasks.
[0040] The processor 11 is connected with other devices (later described)
through a bus 16. Each device on the system bus 16 is provided with a
unique memory address or a unique I/O address which can be specified by
the processor 11 to access a predetermined device. The system bus 16 is a
common signal transmission path including an address bus, a data bus, and
a control bus.
[0041] The RAM 12 is a writable memory and used for loading program codes
to be executed by the processor 11 or temporarily storing work data of an
execution program. The program codes include, for example, BIOS (Basic
Input/Output System), device drivers for operating peripheral devices
with hardware, an operating system, applications and the like.
[0042] The ROM 13 is a non-volatile memory for permanently storing
predetermined codes or data, and for example, stores BIOS and POST (Power
On Self Test).
[0043] The input/output devices 14 include a display interface 14-1 for
connection to a display 21, a user input device interface 14-2 for
connection to a user input device such as a keyboard 22 and a mouse 23,
an external storage device interface 14-3 for connection to an external
storage device such as a
hard disk 24 and a media drive 25, a network
interface card (NIC) 14-4 for connection to an external network, and the
like. However, the types or configurations of the input/output devices 14
to be provided depend on the entity of the program processing system 10.
For example, when the system is a DVD record/playback apparatus, the
input/output devices include a multiplexing device, a demultiplexing
device, a video signal control device, an audio signal control device,
and the like.
[0044] The display interface 14-1 is a dedicated interface controller for
actually processing an imaging instruction provided by the processor 1.
The imaging data processed by the display interface 14-1 is once written,
for example, to a frame buffer (not shown), and then output on a screen
by the display 21.
[0045] The HDD 24 is an external storage device (known) having a magnetic
disc mounted fixedly as a storage carrier, and is more favorable than
other external storage devices in its storage capacity and data transfer
speed. Typically, the HDD 24 has program codes of the operating system to
be executed by the processor 11, application programs, device drivers and
the like stored therein in a non-volatile manner. Placing a software
program in an executable state on the HDD 24 is referred to as
"installation" of the program on the system. For example, it is possible
to install on the HDD 24 an operating system or an application program
which includes a plurality of tasks and has a session formed of a set of
tasks for each function defined therein.
[0046] The media drive 25 is a device for loading a portable medium such
as a CD (Compact Disc), an MO (Magneto-Optical disc), and a DVD (Digital
Versatile Disc) to access a data record surface thereof.
[0047] The portable medium is used mainly for the purpose of backing up
software programs or data files as computer readable data or transporting
them between systems (including sale, circulation, and distribution). For
example, it is possible to physically circulate and distribute an
operating system or an application program which includes a plurality of
tasks and has a session formed of a set of tasks for each function
defined therein among a plurality of devices by using such portable
media.
[0048] The network interface 14-4 can connect the system 10 to a local
network such as a LAN (Local Area Network) or to a wide area network such
as the Internet in accordance with a predetermined communication protocol
such as Ethernet.RTM..
[0049] On a network, a plurality of host terminals (not shown) are
connected transparently to constitute a distributed computing
environment. Software programs or data contents can be delivered over the
network. For example, it is possible to download through the network an
operating system and an application program which includes a plurality of
tasks and has a session formed of a set of tasks for each function
defined therein.
[0050] Each of the input/output devices 14-1, 14-2, . . . is assigned an
interrupt level and can make a notification to the processor 11 through
an interrupt request signal line 19 in response to occurrence of a
predetermined event (for example, GUI processing such as keyboard input
and mouse click, or completion of data transfer in the
hard disk). In
response to such an interrupt request, the processor 11 executes an
interrupt handler associated therewith.
[0051] The timer 15 is a device for generating a timer signal at
predetermined intervals. The timer 15 is also assigned an interrupt level
to generate a periodical interrupt to the processor 11 through the
interrupt request signal line 19.
[0052] B. Configuration of Application Program
[0053] In the embodiment, an application program consists a plurality of
tasks executed in a multitask environment and can provide a plurality of
functions. FIG. 2 schematically shows the configuration of an application
program 100.
[0054] With the application program 100 shown, a plurality of tasks
operating in parallel cooperate to realize a particular function. The
series of operations is referred to as a session. Tasks associated with
the operation of the session are referred to as session constituent
tasks. In the example shown, a session 101 formed of a task 111, a task
112, and a task 113 executed in this order, and a session 102 formed of
the task 112, a task 114, and a task 115 executed in this order are
defined.
[0055] One of the tasks constituting the application program 100 is a
session manager 110 which manages execution of operation for each
session. The session manager 110 has a session registration table 130
previously defined statically for collectively managing all sessions in
the application program 100. The session registration table 130 has
stored therein an identification number of each session, identification
numbers and the execution order of tasks constituting each session, and
hardware resources used in each session.
[0056] The session registration table 130 has task identification numbers
registered therein, the number of which is equal to the number of tasks
constituting sessions. In this event, it is possible that different
sessions have the same task registered therefor. In the example shown in
FIG. 2, the task 112 is registered in both of the session 101 and the
session 102.
[0057] The session manager 110 uses the session registration table 130 to
manage resources for executing a session and the execution state. The
resource management herein includes generation of instances of tasks
included in a session, management of input/output performed by tasks, and
the like.
[0058] In a session, similarly to tasks, the execution state of operation
such as start, interruption, restart, and end can be changed. The
operation and management of the execution state in sessions are performed
by the session manager 110 in response to a request from outside of the
program.
[0059] For operating a session, the session manager 110 collectively
operates all the tasks constituting the session, so that the session
operation requesting side does not need to be aware of the individual
session constituent tasks.
[0060] A session is started by the session manager 110 reading
identification numbers of tasks constituting the session from the session
registration table 130 to start the associated tasks simultaneously. In
this event, the session manager 110 forms a session management table for
the associated session and records the identification numbers of the
session and the respective session constituent tasks and the operating
states for monitoring.
[0061] A session is interrupted and restarted by the session manager 110
simultaneously interrupting and restarting execution of session
constituent tasks recorded in a session management table for the
associated session having a specified identification number.
[0062] A session is ended by the session manager 110 forcefully ending
session constituent tasks simultaneously and deleting a session
management table of the associated session.
[0063] The operation of each of tasks constituting a session in the
aforementioned session operation is controlled by the session manager 110
issuing a system call to the operating system. A plurality of sessions
can be registered in a single application program and a plurality of
sessions can be simultaneously operated in parallel. It is also possible
that a plurality of sessions of the same type can be operated
simultaneously. In addition, the same task can be shared among different
types of sessions.
[0064] C. SPECIFIC EXAMPLE
[0065] In the previous section B, description are made in which the
application program including a plurality of tasks and executed in a
multitask environment defines tasks required for realizing each function
to be provided thereby and the execution order of the tasks as a session,
and the session manager formed as one of the tasks manages resources for
executing a called session and the execution state. Thus, the plurality
of tasks can be collectively managed in the form of a session, and
advantages can be provided in development in tasks such as execution
efficiency, productivity, portability, and maintainability. In addition,
the session operating side can realize a required function without being
aware of the states of individual tasks. Furthermore, since a task can be
shared among sessions, application development can be performed more
efficiently than conventional development for a single task.
[0066] In the section C, the function, the configuration, and the effects
of the application program according to the present invention are
described with an embedded application in a DVD record/playback device as
an example.
[0067] FIG. 3 schematically shows the configuration of an embedded
application in a DVD record/playback device.
[0068] The application program includes a plurality of tasks. In the
example shown, the tasks constituting the application program are stored
in a software block (except for a session manager), and include a
playback control task, a record control task, an input/output control
task, a multiplexing task, a demultiplexing task, a video coding task, a
video decoding task, an audio coding task, an audio decoding task, a
memory control task, and the like. Each task in the application program
uses hardware resources possessed by the system 10. For example, the
input/output control task uses an input/output control device, the
multiplexing task uses a multiplexing device, the demultiplexing task
uses a demultiplexing device, the video coding task and the video
decoding task use a video signal control device, the audio coding task
and the audio decoding task use an audio signal control device, and the
memory control task uses a memory.
[0069] In the application, a plurality of tasks operating in parallel
cooperate to realize a particular function such as playback from or
record to a record surface of a DVD disc. A series of operations
associated with the playback or record is referred to as "a playback
session" or "a record session."
[0070] In the example shown, the playback session is defined by session
constituent tasks including the playback control task, the input/output
control task, the demultiplexing task, the video decoding task, audio
decoding task, and the memory control task. The record session is defined
by session constituent tasks including the record control task, the
input/output control task, the multiplexing task, the video coding task,
the audio coding task, and the memory control task.
[0071] One of the tasks constituting the application program is the
session manager which manages execution of operation for each session.
The session manager has a session registration table previously defined
statically for collectively managing all sessions in the application
program. The session registration table has stored therein an
identification number of each session such as the playback session and
the record session, identification numbers and the execution order of
tasks constituting each session, and hardware resources used in each
session.
[0072] The session registration table has task identification numbers
registered therein, the number of which is equal to the number of tasks
constituting sessions. In this event, it is possible that different
sessions have the same task registered. In the example shown in FIG. 3,
the input/output control task and the memory control task are registered
in both of the playback session and the record session.
[0073] When open of a session is directed from the outside, the session
manager refers to the session registration table to acquire task
constituting the session and hardware resources used by the respective
tasks. The session manager generates instances of session constituent
tasks and manages input to an output from the hardware resources by the
instances.
[0074] In the session, similarly to tasks, the execution state of
operation such as start, interruption, restart, and end can be changed.
The operation and management of the execution state in sessions are
performed by the session manager in response to a request from the
outside. When the session is operated, the session manager collectively
operates all the tasks constituting the session, so that the session
operation requesting side does not need to be aware of the individual
session constituent tasks.
[0075] In the example shown in FIG. 3, a plurality of sessions are
registered including the playback session and the record session. In the
example shown, the plurality of sessions such as the playback session and
the record session are simultaneously operated in parallel. In addition,
two playback sessions are simultaneously operated. Furthermore, the
input/output control task and the memory control task are shared between
the different types of sessions, that is, the playback session and the
record session. A playback session 1, a record session 2, and a playback
session 2 show conceptual drawings of generated instances of the session
constituent tasks in the software block.
[0076] FIG. 4 shows an operation sequence performed when the playback
session is started in the embedded application in the DVD record/playback
device shown in FIG. 3.
[0077] The session is started by the session manager reading
identification numbers of tasks constituting the session from the session
registration table to start the associated tasks simultaneously.
[0078] Specifically, when a command interface directs open of a session,
the session manager forms a session management table (not shown) for the
associated session. Specifically, the session manager makes an inquiry to
the session registration table to acquire hardware resources and write
the state of each hardware resource to the session management table. In
addition, the session manager searches for tasks constituting the
playback session and writes the state of the session to the session
management table.
[0079] Next, the session manager simultaneously starts all the tasks
constituting the playback session. The task start operation is controlled
by the session manager issuing a system call to the operating system.
Specifically, in response to the system call from the session manager,
the operating system simultaneously starts all the tasks constituting the
playback session including the playback control task, the input/output
control task, the demultiplexing task, the video decoding task, the audio
decoding task, and the memory control task.
[0080] Upon completion of the start of all the tasks constituting the
playback session, the operating system notifies the session manager of
the completion of the start of the task. Then, the session manager
notifies the command interface of the completion of the start of the
playback session.
[0081] Thereafter, the session is started, and the operating system starts
operation of each task in accordance with an instruction of the command
interface.
[0082] When the session is started, the session manager forms a session
management table (not shown) for the associated session and records the
identification numbers of the session and each session constituent task
and the operating state for monitoring.
[0083] FIG. 5 shows an operation sequence performed when the playback
session is ended in the embedded application in the DVD record/playback
device shown in FIG. 3.
[0084] For ending the session, the session manager forcefully ends all the
tasks constituting the playback session simultaneously and deletes the
session management table of the associated session.
[0085] Specifically, when the command interface directs close of the
session, the session manager refers to the state of the session in the
session management table to acquire the state of the playback session,
and then issues a system call to the operating system for ending all the
tasks constituting the session.
[0086] In response to the system call, the operating system simultaneously
ends all the tasks constituting the playback session including the
playback control task, the input/output control task, the demultiplexing
task, the video decoding task, the audio decoding task, and the memory
control task.
[0087] Upon completion of the end of all the tasks constituting the
playback session, the operating system notifies the session manager of
the completion of the task end. Then, the session manager refers to the
session management table to release the hardware resources used by the
session constituent tasks and deletes the session management table. The
session manager notifies the command interface of the completion of the
end of the session.
[0088] As apparent from the description of FIG. 4 to FIG. 5, the session
operating side, that is, the command interface can realize a required
function without being aware of the states of the individual tasks.
[0089] The present invention has been described with reference to the
specific embodiment. However, it is apparent that those skilled in the
art can made modifications and substitutions of the embodiment without
departing from the scope of the present invention. In other words, the
present invention has been disclosed in the form of illustration, and the
described contents of the specification should not be interpreted as
limiting. Reference should be made to the claims to determine the scope
of the present invention.
* * * * *