이번 포스팅은 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)의 처리 방법과 순서를 기술한 명령어의 집합입니다.
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 |