Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Confusion over Multi Threading Post 302930767 by jimthompson on Wednesday 7th of January 2015 06:17:25 AM
Old 01-07-2015
Confusion over Multi Threading

Hi, I am trying to get my head round Multi Threading and I have a few queries to try and clear up my confusion

Q1. Is multi threading a hardware / chip level concept, an OS level or an application level concept ? I am trying to work out where SMT architecture fits in.

Q2. What's the multi threading position in relation to Unix, Linux and Windows ?

Q3. Is multi threading only in relation to application processes or is it for OS processes as well ? I am trying to differentiate multi threading from the older CPU concepts of timeslicing, round robin etc

My understanding is that you can have multi processing systems which switch between or execute processes in parallel. However multi threading takes this a step further in that a process can be broken down into threads and the processor execute the individual threads ( again via switching or parallel depending on the number of processors / cores you have )

Q4. Are processors therefore specifically designed either to execute full processes, threads or both ? Can a single processor execute a mix of full processes and threads ? i.e. does a processor operate only at either a process level or a thread level ?

Q5. What's the difference between a single processor with multi cores and a multi processor with single core processors ?

Q6. Are most modern processors today, multi thread capable processors ( or is it the OS which determines this ). Does the processor have to be specifically set to multi threading ?

any help greatly appreciated
Jim
 

10 More Discussions You Might Find Interesting

1. Programming

Multi threading using posix thread library

hi all, can anyone tell me some good site for the mutithreading tutorials, its application, and some code examples. -sushil (2 Replies)
Discussion started by: shushilmore
2 Replies

2. Programming

Multi-threading questions

I've been doing some reading lately about threading (Posix threads) and I'm really curious about a couple things that I've read. I'm not sure if many people here have threading experience, but I thought it would be nice to be able to discuss some questions about it. (For the record, I did... (1 Reply)
Discussion started by: DreamWarrior
1 Replies

3. Programming

Multi threading using fork

Hi, I have written a code which will run a set of process using fork. I want to know from You how can i start another job when one of my job in my loop is completed My code is #include<stdio.h> #include<ctype.h> main() { int pid,cid; ChildProcess(); ... (1 Reply)
Discussion started by: sureshraju_ma
1 Replies

4. Programming

Regarding Multi-Threading

Hi All, Here's my question I have a 385 MB file containing 5,000,000 records. I need to read from the file and load into a table. Initially i thought of doing it in a single thread (execution of a single program) but when calculated accounted 16 hours of time on a standard benchmark. Hence... (5 Replies)
Discussion started by: matrixmadhan
5 Replies

5. Programming

Multi threading?

I am not sure if multi threading is the correct term, but here is what I am trying to do. I have a while loop that displays the number 1, pauses, displays the number 2, pauses , displays the number 3 ad infinitum. It just keeps counting. While the screen displays the sequence of numbers counting... (4 Replies)
Discussion started by: enuenu
4 Replies

6. Programming

Multi-threading-- calling same function through different threads

Sir, Can I call same function in the start routines of different Threads. I have created two different threads....and wanna call same function from both threads....is it possible??? Also can I fork inside a thread??? (1 Reply)
Discussion started by: arunchaudhary19
1 Replies

7. Programming

Multi-threading

Hi, If we create 10 threads to invoke runQuery method at same time, Will queryProcessor will be overriden sometime or 10 different copies will be created? We are not using any sunchronzation mechnism in runQuery(). so there is not gurantee on QueryProcessor class variables right OR each 10... (1 Reply)
Discussion started by: jramesh1
1 Replies

8. Programming

Multi-threading

In this piece i implemented the gossip method. The first thread is invoked from inside the (msg is first sent from node -1 to 0 from main()) and the other threads are invoked from inside of the thread function itself. I used two mutexes and a condition variable to control the synchronization. ... (4 Replies)
Discussion started by: saman_glorious
4 Replies

9. UNIX for Beginners Questions & Answers

Does UNIX support multi-Threading ?

Not just background process running ... but im looking if unix has any multi-threading concept like in Java, C# ... if not present, can you pls share the nearest feature in unix that is close to multi-threaded concept (3 Replies)
Discussion started by: i4ismail
3 Replies

10. UNIX for Beginners Questions & Answers

Multi threading in UNIX

Hi, Can we apply multi threading in Unix. I am using bash shell. We have a generic script to load the data to table based on file input. For each file there is an individual table to load. For each file found in directory I want to load the data in parallel to target table using ... (3 Replies)
Discussion started by: vedanta
3 Replies
pset_getattr(2) 						System Calls Manual						   pset_getattr(2)

NAME
pset_getattr(), pset_setattr() - manage processor set attributes SYNOPSIS
DESCRIPTION
The function returns the current value of the attribute type for the processor set pset in the memory location pointed to by val. The function assigns the value val to the attribute type for processor set pset. A user can not change the attribute values for the system default processor set using the function. A user with the privilege or a user with READ permission for the processor set may query any attribute values. The following processor set attributes may be queried or changed through these functions: The GID (group id) of the processor set owner. The creator's GID is assigned at processor set creation time. A user with the privilege or the pset owner may change the value of this attribute. The UID of the processor set owner. The creator is assigned as the owner at processor set creation time. A user with the privilege or the pset owner may change the value of this attribute. The access permission bitmask for the processor set. These are defined similar to file access permissions. There are three types of access: The user can bind its process or thread to the processor set using the function (see pset_bind(2)). The user can query the processor set attributes. The user can modify the processor set attributes and configuration, and destroy the processor set. The following bit values are used for the access bitmask: All users in processor set owner's group have EXEC access. All users in processor set owner's group have READ access. All users in processor set owner's group have WRITE access. All others have EXEC access. All others have READ access. All others have WRITE access. The processor set owner has EXEC access. The processor set owner has READ access. The processor set owner has WRITE access. A newly created processor set by default has READ and EXEC access for everyone, but WRITE access only for the processor set owner. A user with the privilege or the pset owner may change the value of the attribute. A value of indicates that processors in this processor set are configured to receive external interrupts. It may be assigned a value of to disable all processors in the processor set from receiving and processing external I/O interrupts. Not all platforms may support this feature. By default, I/O interrupts are enabled on all processors. The feature may be useful for some realtime applica- tions where unpredictable interrupt handling overhead may adversely impact the application's response time requirements. Only a user with the privilege may change this attribute. Indicates the behavior when a request to destroy a non-empty processor set is made through the function. Possible values are: Reassign all processors in the processor set pset to the system default processor set. Migrate all threads and processes bound to this processor set to the system default processor set. This is the default value for this attribute. Make the request fail with an error if there are threads or processes bound to the processor set or if there are processors assigned to the processor set. Make the request fail with an error if there are active threads or processes bound to the processor set. Otherwise, perform the operation by reas- signing the processors in the pset to the system default processor set. A user with the privilege or a user with WRITE permissions may change the value of this attribute. Indicates the behavior when a request to bind a process or a thread to an empty processor set is made through the function. Possible values are: Go through with the request. However, the affected threads will not be scheduled to execute until a processor is assigned to the empty processor set. Reject the request with an error. This is the default value for this attribute. A user with the privilege or a user with WRITE permissions may change the value of this attribute. Indicates the behavior when a request to remove the last processor from a processor set is made through the function, or through the processor deallocation functionality. Possible values are: Make the request fail if there are active threads and processes assigned to the processor set. Assign the processor to the specified processor set, and migrate all threads and processes to the system default processor set This is the default value for this attribute. A user with the privilege or a user with WRITE permissions may change the value of the attribute. The LCPU attribute of a processor set indicates whether the physical processor cores in a pset are enabled with logical processors (LCPUs). On systems with the Hyper-Threading (HT) feature enabled, each proces- sor core may have more than one hyper-thread per physical processor core. Each hyper-thread is represented to the operating system and applications as a logical processor (LCPU). The can be set for the default processor set using the command. This attribute is supported only on system with the Hyper-Threading feature. If this feature is disabled at the firmware level or is not supported, this attribute cannot change. Enable the LCPUs in a processor set. This is the default value for systems with the Hyper-Threading feature enabled. Disable the LCPUs in the processor set. This is the default value for the systems without the Hyper-Threading feature or systems with the Hyper-Threading disabled in the firmware. The default value for any attribute can be assigned using the value in the function. Security Restrictions Some or all of the actions associated with this system call require the privilege. Processes owned by the superuser have this privilege. Processes owned by other users may have this privilege, depending on system configuration. See privileges(5) for more information about privileged access on systems that support fine-grained privileges. RETURN VALUE
The functions return zero on successful completion. Otherwise, -1 is returned and errno is set to indicate the error. ERRORS
or fails if one or more of the following is true: The memory location pointed to by val is not writable by the user for The specified processor set pset, the attribute type, or the attribute val is invalid. The memory location pointed to by val is NULL for The processor set functionality is not supported by the underlying HP-UX version. The requested attribute value is not supported for the function. The user does not have the necessary permissions to query or change the processor set attributes. AUTHOR
and were developed by HP. SEE ALSO
kctune(1M), psrset(1M), pset_assign(2), pset_bind(2), pset_create(2), pset_ctl(2), pset_destroy(2), privgrp(4), lcpu_attr(5), privi- leges(5). pset_getattr(2)
All times are GMT -4. The time now is 04:01 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy