쓰레드와 프로세스의 차이점 .....

psj1050   
   조회 24206   추천 0    

요새  학교 에서 운영체제론을 듣는데요 ..

타과에 가서 혼자 들을 라니 정말 힘드네요 ...


시험에 쓰레드와 프로세스의 차이점 이란 문제가 출제 된다는데 ..

이거뭔차이인지 모르겠네요 --;;;;

개념도 모르겠고 .. 가르처주시면 감사하겠습니다
짧은글 일수록 신중하게.
어린왕자 2009-10
개념을 잡는 다는 것은 참 어렵죠
교과서를 자세히 읽어 보시면 개념이 잘 설명 되어 있을텐데...
쓰레드 / 프로세스 이 개념도 OS 기준으로 조금씩 달라
운영체제론에서 다루는 개념은 보편적이였던것 같네요.
저도 학교 다릴때 운영체제 관련 수업을 참 많이 들었었는데
10년이 넘었네요

http://kjysmu.tistory.com/10?srchid=BR1http%3A%2F%2Fkjysmu.tistory.com%2F10
참고해 보세요.
풍운화 2009-10
운영체제 수업듣고 있습니다
둘다 같은겁니다
리눅스는 프로세스라고 부르고
윈도우는 쓰레드라고 부릅니다
유닉스 계열은 따로 부르는  용어가 있는데 지금 학교가 아니라 잘 기억나지 않네요
 둘다 같은겁니다
김윤술 2009-10
프로세스와 쓰레드는 다른개념입니다. 윈도우 인터널이라는 MS공인 교육을 받았었는데요 다른말입니다. NT 운영체제 아키텍쳐를 알아야 하는데 워킹셋이니 뭐니 어려운거 많이 나오긴 하는데요 이거 받아놓으면 정말 일하는데 도움이 됩니다.
창고지기 2009-10
정답을 알려드리죠..

프로세스 는 최소 한개의 쓰레드를 가져야 합니다.
멀티 쓰레드 라는 말은,  프로세스 밑에 다수의 쓰레드가 있다는 뜻입니다.

프로세스가 큰 개념
쓰레드는 그 밑에 작은 개념입니다.

컴퓨터공학/OS 부분에서  가장 기본으로 나오는 부분입니다.
정희섭 2009-10
process = n * threads 라고 봐도 무방합니다만
하지만 한프로세스가 여러개의 스레드를 가질수도 있지만 여러개의 자식 프로세스를 가질수도 있습니다.
또 자식프로세스들이 멀티스레드일수도 있겠죠
프로세스 : 스레드 구분은 보통 OS 마다 다르고 책마다 다릅니다
     
정희섭 2009-10
프로세스(Process) 프로세서(Processor)가 아닙니다 ^^;;
프로세스 - 실행중인 프로그램을 뜻하는거고
프로세서 - 처리장치 즉 CPU를 말합니다...
표동수 2009-10
뭐 간단히 말해보면 프로세스는 처리 과정이고 쓰레드는 그 처리 과정 안의 개개의 작업들 이라고 하면 되려나요? 전 이렇게 이해하고 있습니다.
정희섭 2009-10
제가 가지고 있는 책에서 부분 발췌해봅니다. ( 프로그래밍 언어 / Kenneth C. Louden )
1. 프로세스는 독립적인 수행을 위해 일정이 잡혀있는 프로그램 또는 프로그램 부분의 실체(instance) 이다.
2. 프로세스는 원래 작업(job)으로 불렸는데 초기 컴퓨터 구조에서는 멀티스레딩/멀티태스킹 이런게 없고 순차적 일괄작업만이 있었기 때문에, 프로세스와 프로그램의 구분이 없었다.
3. 하드웨어 인터럽트는 의사병렬성(멀티태스킹, 컨텍스트 스위칭등을 말하는거 같습니다.)이 등장하면서 한개의 프로세스의 상태를 제어하기 위해 필요하다.
4. 여러 프로세스의 존재와 함께 중량급(Heavyweight) 프로세스와 경량급(Lightweight) 프로세스의 구분이 가능한데 중량급은 수행되고 있는 하나의 프로그램 즉 앞서의 프로세스의 개념에 해당한다. - 완전한 독립적 개체 - 경량급은 그것이 유래한 프로그램과 자원을 공유한다. - parent 프로세스로부터 별개로 실행되지만 모든 메모리및 기타자원을 공유한다는점을 제외하고는 독립적일수 없다. 이 경량급 프로세스를 thread 라고도 부르며 운영체제에 의한 생성과 관리면에서 부담이 적으므로 효율적일수 있다. -

이 책에서 계속 이어지는 내용은 SIMD , MIMD 가 뭔지에 대한 내용과 교착 상태에 빠지는걸 피하는 방법 -세마포어 등등- 이 나와 있습니다.

ps. 책에서 대부분을 발췌를 하긴 했는데 저작권 문제땜시 맘에 좀 걸리네요 ^^; 이정도면 공정사용 아닌지..
psj1050 2009-10
아정말 답변 굳입니다 !!!
푸릉이 2009-10
프로세스와 쓰레드..

간단히 말해서 프로세스는.. 프로그램이고. 프로그램의 작은 개념으로 보시면 됩니다.

보통 프로그램은 한번에 한동작을 쭉 처리할수 박에 없죠? 근데 이럼 동시 처리를 못하니까.

프로그램 내부에 프로세스 과정을 처리할수 있는 프로그램 라인을 간이로 만드는게 쓰레드 입니다.

좀 도움이 되셨을런지.
2009-10
아파치나 Mysql 사용할때 커널이 프로세스를 포크해서 접속을 받아주는것보다는 쓰레드를 생성하는것이 리소스를 적게 잡아먹어서 쓰레드가 좀 낫다라는 얘기를 들은적이있습니다.

mysql같은경우 컴파일옵션에따라 달라지지만 멀티쓰레드/멀티프로세스 두가지방식으로 모두 컴파일가능합니다.

아래에 멀티프로세스방식으로 서비스되는 Mysql과 멀티쓰레드로 작동중인 서버의 상태를 보여드릴께요.

쓰레드로 작동중인 서버는 프로세스가 한개에서 모든 접속을 처리하죠.


* 멀티쓰레드로 작동중인 DB

[root@db2 ~]# ps -ax | grep mysql | wc -l
    250

[root@db2 ~]# ps -ax | grep mysql | head -n 5
32768  ??  IN    1:35.92 /usr/local/libexec/mysqld --defaults-extra-file=/etc/my.cnf --basedir=/usr/local --datadir=/db/data --user=mysql --pid-file=/db/data/db2.test.co.kr.pid --port=3306 --socket=/tmp/mysql.sock
32769  ??  IN    2:36.93 /usr/local/libexec/mysqld --defaults-extra-file=/etc/my.cnf --basedir=/usr/local --datadir=/db/data --user=mysql --pid-file=/db/data/db2.test.co.kr.pid --port=3306 --socket=/tmp/mysql.sock
32770  ??  IN    1:46.88 /usr/local/libexec/mysqld --defaults-extra-file=/etc/my.cnf --basedir=/usr/local --datadir=/db/data --user=mysql --pid-file=/db/data/db2.test.co.kr.pid --port=3306 --socket=/tmp/mysql.sock
32771  ??  IN    2:06.98 /usr/local/libexec/mysqld --defaults-extra-file=/etc/my.cnf --basedir=/usr/local --datadir=/db/data --user=mysql --pid-file=/db/data/db2.test.co.kr.pid --port=3306 --socket=/tmp/mysql.sock
32772  ??  IN    1:35.11 /usr/local/libexec/mysqld --defaults-extra-file=/etc/my.cnf --basedir=/usr/local --datadir=/db/data --user=mysql --pid-file=/db/data/db2.test.co.kr.pid --port=3306 --socket=/tmp/mysql.sock


* 멀티프로세스로 작동중인 DB
[db1 ~ # ] ps -ax | grep mysql
41982  p0- I      0:00.01 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/etc/my.cnf --user=mysql --datadir=/db/data --pid-file=/db/data/db1.test.co.kr.pid
42014  p0- S    3266:49.25 /usr/local/libexec/mysqld --defaults-extra-file=/etc/my.cnf --basedir=/usr/local --datadir=/db/data --user=mysql --pid-file=/db/data/db1.test.co.kr.pid --port=3306 --socket=/tmp/mysql.sock


QnA
제목Page 4130/5731
2015-12   1793811   백메가
2014-05   5268796   정은준1
2017-06   3106   online9
2017-07   3491   전산oa
2008-12   6946   김승권
2017-01   25376   두cpu
2017-01   3606   강한구
2017-04   4360   나너우리
2016-06   5875   yeondoo
2016-06   5267   백승철
2017-06   3507   몬스
2016-08   4208   catstyle
2020-02   2412   행복하세
03-29   476   S84j2h
2017-12   5120   2CPU최주희
2018-02   4110   페르세우스
2019-07   3013   냐미냐미
2017-04   4026   퍼싱글
2017-05   4813   아름드리소…
2017-06   3437   일국
2017-06   4745   하벨
2017-07   4020   컴박