This is perhaps a very silly question, but it's been bugging me for a while. My doubt is that since the only threads that are scheduled onto the CPU are kernel threads(typically) and since every user thread is mapped to a kernel thread, does that mean that all applications essentially run in kernel mode?
Does CPU always execute instructions in kernel mode?
193 Views Asked by Jamāl At
1
There are 1 best solutions below
Related Questions in OPERATING-SYSTEM
- Why two threads accessing one resource crashes one thread?
- How to tell the difference between linux and mac
- Can a single thread be shared among multiple processes ? If yes how?
- /usr/lib/* files had been deleted, how to restore these files
- What does a POSIX interface refer to in terms of microkernels?
- Is zero copy principle supported in Mac
- Why segment files into chunks for HTTP streaming?
- Add/remove process from kernel runqueue
- How does my computer know to which character a char corresponds?
- Who starts the OS process scheduler?
- ^M behind operating system version?
- How to make a scanf() type function in a 32bit os in c?
- How is `dup2` actually working?
- Logged in hostname/IP in linux command history
- Had 16-bit DOS a memory access limitation of 1 MB? If yes, how?
Related Questions in SCHEDULING
- How do I know the last sched time of a process
- rm scheduling - calculation
- Scheduling multiple instance of a single java process
- How to Schedule a job run at multiple time intervals
- What's the purpose of `on_rq` field in `task_struct`?
- How to schedule job in Jenkins at particular timings
- Run code at a certain time
- AJAX disabledDates Fullcalendar Machines/Users
- Cron like scheduling using Apache Oozie
- SQL Server grouping interval
- Why is response time important in CPU scheduling?
- What are the differences between "recursion", "a non-terminating procedure that happens to refer to itself", and "repeated scheduling"?
- Thread creation using pthread_create with SCHED_RR scheduling fails
- cpu scheduling SRTF
- Scheduled scaling of Azure VMSS (via Runbook)
Related Questions in KERNEL-MODE
- How do you get the name of a service in kernel mode? (Windows)
- Hook ZwTerminateProcess in x64 Driver (Without SSDT)
- What is kernel mode software?
- Kernel debugging in VS 2012
- IrpDeleteFileForce to symbolic link file
- Linux kernel filp_open fails with NOENT
- What WinDbg version is compatible with NT 4.0 (SP 6a) for kernel debug?
- How to modify ACL of an object from kernel mode in Windows OS?
- How does a user process perform system call without going through context switch?
- SDT Kernel mode hooking
- Does CPU always execute instructions in kernel mode?
- Difference between SystemRoot and C:\Windows
- Kernel Mode - Physical Addresses or Virtual Addresses?
- how to write a windows kernel mode debugger?
- sysctl doesn't creates file in proc
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
There's multiple scenarios where some are less common. One possible example (of a less common scenario) is having a single kernel stack per CPU, with "save user-space thread state" as part of privilege level change from user-space to kernel and "load possibly different user-space thread's state" as part of privilege level change from kernel back to user-space (where it's hard to say if kernel's code use 1 thread/task per CPU or if kernel's code doesn't use the concept of threads/tasks at all and only exists between the 2 halves of a potential user-space thread switch).
For the common scenario, every thread/task has a kernel part (and its own kernel stack, etc) and a user-space part (and its own user-space stack, etc). In this case it can be described as task switches only ever occuring when the thread is using its kernel part; but after the task switch the task's kernel part can switch to the same task's user-space part and back again whenever it wants (e.g. for kernel system calls and IRQs).
Note that this isn't the only way to describe the common scenario; but it is my preferred way (because it avoids "beginner pitfalls" - specifically, the false assumption that IRQs are a necessary part of task switching).
I suspect that this way of describing the common scenario (i.e. that task switches only happen between tasks running kernel code) has caused your doubts.