Patents by Inventor Stephen J. McPolin
Stephen J. McPolin has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 11899775Abstract: In an embodiment, an operating system includes a device manager that is a central repository of device information. Device drivers may communicate with the device manager over respective channels, and may request channel identifiers (Cids) to communicate with resources related to the respective devices. The device manager may provide values for resource access (or handles that the resources may use to access values). In an embodiment, the device drivers do not have the ability to allocate resources for a peripheral device. Accordingly, the security of the system may be increased. Furthermore, the resource allocation may be centrally located, simplifying the process of updating resource allocation when needed. Additionally, the device manager may delay response to requests from a given device driver until its dependencies are clear (e.g., other device drivers and hardware initializations). Thus, startup scripts may be avoided in some embodiments.Type: GrantFiled: March 3, 2021Date of Patent: February 13, 2024Assignee: Apple Inc.Inventors: Andrew C. Boyd, Denis J. Palmans, Peter H. van der Veen, Stephen J. McPolin, Gilberto Gemin, Stephane Couture, Joseph A. Sarlo
-
Patent number: 11392409Abstract: In an embodiment, an operating system for a computer system includes a kernel that assigns code sequences to execute on various processors. The kernel itself may execute on a processor as well. Specifically, in one embodiment, the kernel may execute on a processor with a relatively low instructions per clock (IPC) design. At least a portion of other processors in the system may have higher IPC designs, and processors with higher IPC designs may be used to execute some of the code sequences. A given code sequence executing on a processor may queue multiple messages to other code sequences, which the kernel may asynchronously read and schedule the targeted code sequences for execution in response to the messages. Rather than synchronously preparing a message and making a call to send the message, the executing code sequences may continue executing and queuing messages until the code has completed or is in need of a result from one of the messages.Type: GrantFiled: June 26, 2018Date of Patent: July 19, 2022Assignee: Apple Inc.Inventors: Shawn R. Woodtke, Peter H. van der Veen, Stephen J. McPolin
-
Publication number: 20210182375Abstract: In an embodiment, an operating system includes a device manager that is a central repository of device information. Device drivers may communicate with the device manager over respective channels, and may request channel identifiers (Cids) to communicate with resources related to the respective devices. The device manager may provide values for resource access (or handles that the resources may use to access values). In an embodiment, the device drivers do not have the ability to allocate resources for a peripheral device. Accordingly, the security of the system may be increased. Furthermore, the resource allocation may be centrally located, simplifying the process of updating resource allocation when needed. Additionally, the device manager may delay response to requests from a given device driver until its dependencies are clear (e.g., other device drivers and hardware initializations). Thus, startup scripts may be avoided in some embodiments.Type: ApplicationFiled: March 3, 2021Publication date: June 17, 2021Inventors: Andrew C. Boyd, Denis J. Palmans, Peter H. van der Veen, Stephen J. McPolin, Gilberto Gemin, Stephane Couture, Joseph A. Sarlo
-
Patent number: 10990457Abstract: In an embodiment, an operating system is defined in terms of a set of actors, each of which implements one or more capabilities built into the system. The actors may establish channels between them for communication of messages between the actors. Some actors may interpose between other actors. These other actors may, in some cases, interpose on channels used by the base actor. In some embodiments, some channels may be interposed while others may be monitored by the interposing actor but may still communicate directly with the underlying actor. Some channels may not be affected by the interposition (e.g. the channels may not be interposed or monitored), in an embodiment. Other examples of interposition may include debugging, simulation, and sandboxing.Type: GrantFiled: June 26, 2018Date of Patent: April 27, 2021Assignee: Apple Inc.Inventors: Gianluca Guida, Aleksandar Ristovski, Stephen J. McPolin, Peter H. van der Veen, Shawn R. Woodtke
-
Patent number: 10970383Abstract: In an embodiment, an operating system includes a device manager that is a central repository of device information. Device drivers may communicate with the device manager over respective channels, and may request channel identifiers (Cids) to communicate with resources related to the respective devices. The device manager may provide values for resource access (or handles that the resources may use to access values). In an embodiment, the device drivers do not have the ability to allocate resources for a peripheral device. Accordingly, the security of the system may be increased. Furthermore, the resource allocation may be centrally located, simplifying the process of updating resource allocation when needed. Additionally, the device manager may delay response to requests from a given device driver until its dependencies are clear (e.g. other device drivers and hardware initializations). Thus, startup scripts may be avoided in some embodiments.Type: GrantFiled: August 30, 2018Date of Patent: April 6, 2021Assignee: Apple Inc.Inventors: Andrew C. Boyd, Denis J. Palmans, Peter H. van der Veen, Stephen J. McPolin, Gilberto Gemin, Stephane Couture, Joseph A. Sarlo
-
Patent number: 10929178Abstract: In an embodiment, an operating system for a computer system assigns each independently-schedulable code sequence to an activity. An activity may thus be associated with a group of related code sequences, such as threads that communicate with each other (whether or not they are part of the same program). When a code sequence is ready to be scheduled and it is not part of the current activity, it may preempt the current activity if the activity for the code sequence is not enabled and is not masked by the enabled activities. Each activity may define which other activities it masks. A flexible scheduling scheme may be devised based on the mask assignments for each activity.Type: GrantFiled: June 26, 2018Date of Patent: February 23, 2021Assignee: Apple Inc.Inventors: Peter H. van der Veen, Shawn R. Woodtke, Stephen J. McPolin
-
Publication number: 20210049040Abstract: In an embodiment, an operating system for a computer system assigns each independently-schedulable code sequence to an activity. An activity may thus be associated with a group of related code sequences, such as threads that communicate with each other (whether or not they are part of the same program). When a code sequence is ready to be scheduled and it is not part of the current activity, it may preempt the current activity if the activity for the code sequence is not enabled and is not masked by the enabled activities. Each activity may define which other activities it masks. A flexible scheduling scheme may be devised based on the mask assignments for each activity.Type: ApplicationFiled: June 18, 2018Publication date: February 18, 2021Applicant: Apple Inc.Inventors: Peter H. van der VEEN, Shawn R. WOODTKE, Stephen J. McPOLIN
-
Patent number: 10884831Abstract: In an embodiment, an operating system for a computer system is built on a set of capabilities. Each capability includes at least one pointer to a function that implements the capability. One or more actors are defined which use one or more of the capabilities, and which may be connected to other actors for communication through channels. The channels may be created and maintained by a channel actor. In an embodiment, one or more actors may be assembled to create a composed actor. The actors within the composed actor still communicate over the channels defined between the internal actors, but may pass channel identifiers for actors outside the composed actor, so that the actors within the composed actor communicate with the outside actors as if they were one single actor. Arbitrarily complex actors may be formed in this fashion, while still maintaining the stability and safety of the initial actors.Type: GrantFiled: June 26, 2018Date of Patent: January 5, 2021Assignee: Apple Inc.Inventors: Peter H. van der Veen, Shawn R. Woodtke, Stephen J. McPolin
-
Publication number: 20200319921Abstract: In an embodiment, an operating system for a computer system includes a kernel that assigns code sequences to execute on various processors. The kernel itself may execute on a processor as well. Specifically, in one embodiment, the kernel may execute on a processor with a relatively low instructions per clock (IPC) design. At least a portion of other processors in the system may have higher IPC designs, and processors with higher IPC designs may be used to execute some of the code sequences. A given code sequence executing on a processor may queue multiple messages to other code sequences, which the kernel may asynchronously read and schedule the targeted code sequences for execution in response to the messages. Rather than synchronously preparing a message and making a call to send the message, the executing code sequences may continue executing and queuing messages until the code has completed or is in need of a result from one of the messages.Type: ApplicationFiled: June 26, 2018Publication date: October 8, 2020Inventors: Shawn R. Woodtke, Peter H. van der Veen, Stephen J. McPolin
-
Publication number: 20200310894Abstract: In an embodiment, an operating system is defined in terms of a set of actors, each of which implements one or more capabilities built into the system. The actors may establish channels between them for communication of messages between the actors. Some actors may interpose between other actors. These other actors may, in some cases, interpose on channels used by the base actor. In some embodiments, some channels may be interposed while others may be monitored by the interposing actor but may still communicate directly with the underlying actor. Some channels may not be affected by the interposition (e.g. the channels may not be interposed or monitored), in an embodiment. Other examples of interposition may include debugging, simulation, and sandboxing.Type: ApplicationFiled: June 26, 2018Publication date: October 1, 2020Inventors: Gianluca Guida, Aleksandar Ristovski, Stephen J. McPolin, Peter H. van der Veen, Shawn R. Woodtke
-
Publication number: 20200310893Abstract: In an embodiment, an operating system for a computer system is built on a set of capabilities. Each capability includes at least one pointer to a function that implements the capability. One or more actors are defined which use one or more of the capabilities, and which may be connected to other actors for communication through channels. The channels may be created and maintained by a channel actor. In an embodiment, one or more actors may be assembled to create a composed actor. The actors within the composed actor still communicate over the channels defined between the internal actors, but may pass channel identifiers for actors outside the composed actor, so that the actors within the composed actor communicate with the outside actors as if they were one single actor. Arbitrarily complex actors may be formed in this fashion, while still maintaining the stability and safety of the initial actors.Type: ApplicationFiled: June 26, 2018Publication date: October 1, 2020Inventors: Peter H. van der Veen, Shawn R. Woodtke, Stephen J. McPolin
-
Publication number: 20190102535Abstract: In an embodiment, an operating system includes a device manager that is a central repository of device information. Device drivers may communicate with the device manager over respective channels, and may request channel identifiers (Cids) to communicate with resources related to the respective devices. The device manager may provide values for resource access (or handles that the resources may use to access values). In an embodiment, the device drivers do not have the ability to allocate resources for a peripheral device. Accordingly, the security of the system may be increased. Furthermore, the resource allocation may be centrally located, simplifying the process of updating resource allocation when needed. Additionally, the device manager may delay response to requests from a given device driver until its dependencies are clear (e.g. other device drivers and hardware initializations). Thus, startup scripts may be avoided in some embodiments.Type: ApplicationFiled: August 30, 2018Publication date: April 4, 2019Inventors: Andrew C. Boyd, Denis J. Palmans, Peter H. van der Veen, Stephen J. McPolin, Gilberto Gemin, Stephane Couture, Joseph A. Sarlo