Computer Science/common

[Thread] 기초

짠백이 2020. 4. 18. 17:43
반응형

이번 포스팅은 OS관련 기초개념부터 thread 개념까지 확인해보겠습니다.

 

 

1. OS  (Operating System)

 1.1 정의 :  Operating은 '운영/가동' 의 의미를 가지고 있으며 IT적으로 해석하면 자원과 프로세스를 운영하는 시스템(=운영체제)을 말합니다. 

 

 1.2 용도에 따른 분류

 - 개인용 : window

 - 서버용 : linux (centOS, ubuntu ...)

 

* 참고 : 일반적으로 사용하는 용도에 따른 분류로 절대적이지는 않습니다.

* 자원 : data와 유사한 의미


2. program (프로그램)

 2.1 정의 : 사전적 정의로는 진행계획이나 순서를 의미하며, IT관점에서의 computer program 은 특정 작업 (task)의 처리 방법과 순서를 기술한 명령어의 집합입니다. 

프로그램 예시 (teamViewer 실행 전)

3. deamon (데몬)

 3.1 정의 : 백그라운드에서 process 단위로 실행되는 프로그램 
 3.2 실행모드  

 - standalone : 독립적으로 실행하며 OS 메모리에 상주하기 때문에 응답속도가 빠름

 - xineted : 슈퍼데몬이 다른 데몬을 관리하기 때문에 응답속도가 느림

 3.3 예시 (standalone) 
 - batch program  : 업무의 효율성과 시스템의 부하를 줄이기위해 특정시간에 일괄적으로 대량의 데이터를 처리하는 프로그램 (batch : 일괄)

 - Cron : linux 스케줄러 

 - 메일서버 데몬 : 메일 서버에서 메일의 송/수신 체크하는 데몬

 - 부팅 데몬 : linux 부팅 시 네트워크/하드웨어 설정을 위한 autobot

 

4. process (프로세스)

 4.1 정의 : 사전적인 정의로는 '진행/과정'의 의미가 있으며, IT적인 관점에서는 OS가 특정 작업(task)를 수행하기 위해 자원(memory)를 부여하고 관리하는 프로그램

( 즉, 실행 중인 프로그램)

 

프로세스 예시 (팀뷰어 실행 후)


 4.2 OS 구조 (메모리관점) 

 


5. thread (쓰레드)

 5.1 정의 : 사전적인 정의로는 '가닥/줄기'의 의미가 있으며, IT적인 관점에서는 process의 가닥(=작업=task)을 의미합니다.


 5.2 OS 구조 (메모리관점) 

 

 

6. thread 동기화 이슈

6.1 원인

 - 하나의 자원에 다수의 thread가 접근 할 수 있는 환경으로 인해 데이터 처리의 충돌이 발생 

 - data 안전성과 신뢰성 보장을위해 반드시 필요함

 

6.2 해결방법 (java)

 - synchronized 키워드

   = 동작방식 : 현재 데이터를 사용하고있는 thread를 제외한 나머지 thread는 데이터에 접근 할 수 없도록 block

 

* 참고 : 동기화 이외에도 교착상태, 기아상태 이슈가 있음

 

 

7. refenrence 

 

프로세스와 스레드의 차이 : https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html

 

-------------------------------------------------------------------------------------------------------------

 

정확한 정보를 공유하고자 항상 신중하게 포스팅을 하고 있지만, 

내용에 개선이 필요한 부분이 있을 수 도 있습니다.

추가적인 보완이 필요하다고 판단되는 부분이 있을 경우 댓글로 조언해주시면 감사하겠습니다.

 

* 해당 포스팅이 도움이되셨다면 공감과 댓글 부탁드릴께요 ㅎㅎ

 

------------------------------------------------------------------------------------------------------------

 

 

반응형

'Computer Science > common' 카테고리의 다른 글

[Thread] 동기화 이슈 처리방법 (java)  (0) 2020.04.23
ElasticSearch 개념 및 구조  (0) 2020.04.21
[Thread] muti Process VS muti Thread  (0) 2020.04.18
[GIT] git 개념 및 구성  (0) 2020.01.27
data type(자료형)의 개념  (0) 2018.11.25