[ 운영체제 ] 9. Thread(2)

2024. 4. 8. 20:12·3학년 1학기/운영체제 (OS)
728x90
반응형

Threading Issue

 

● fork , exec 

- fork : 현재 명령어를 실행한 프로세스를 복제한다.

     복제할 때는 만들어진 process는 Thread를 가져오지 않고, 단일 Thread 로 시작한다.

 

- exec : 현재 프로세스를 새로운 프로세스로 덮어씌운다.

 


● Thread Cancellation Type

- Asynchronous Cancellation 은 Cancel하기로 한 Thread를 즉시 Terminate시킨다.

 

- Deffered Cancellation 은 Terminate 되어야 하는지 주기적으로 확인시킨다.

Linux에서는 signal을 통해서 Thread Cancellation 이 이루어진다.

 

Cancel을 할 수 있느냐 없느냐 상태도 있어서 이걸 Table로 나타내면 다음과 같다.

 


● Thread Local Storage (TLS)

- 하나의 프로세스에서 모든 Thread는 서로 global variable을 공유한다.

- TLS 는 각각의 스레드들이 그들의 copy data를 가질 수 있게 한다.

 

 

 

● Scheduler Activations

 

시스템에서는 n:m 혹은 User - Kernel 같이 Two - Level 모델을 사용한다.

 

이 때 쓰이는 구조가 LWP이다.

이는 가상의 Process인데, 이는 kernel threads가 적당한 숫자로 있게 해준다.

( 그냥 Thread가 너무 많아지는 걸 방지하는 역할인 듯 함)

 

https://cafemocamoca.tistory.com/298

 

 


Signal

: Process에게 특정한 일이 발생했다고 알려주는 매커니즘

 

 

Signal의 종류는 다음과 같다.

 

● Synchronous : 현재 있는 프로세스에서 발생한 Signal 
   / ex) 어떤 명령어를 실행하다가 발생한 에러 

● Asnchronous : 외부에서 발생한 Signal
   / ex) 키 입력  

 

 

● Signal disposition (기질)

 - 모든 Signal은 기질을 가지고 있다. 

   이는 Process가 Signal을 받았을 때, 어떻게 행동할지 정해준다.

 

 -  Signal handler : #라는 일이 발생했을 때 Signal을 발생시키는 함수    << 이걸 만들 수 있음  

 

 + SIG_IGN. : Signal 무시한다.

 + SIG_DFL. : Default 상태로 바꾼다.


 

예제 1)

 



 

 

(출처)

한동대학교 고윤민교수님 - 운영체제

반응형

'3학년 1학기 > 운영체제 (OS)' 카테고리의 다른 글

[ 운영체제 ] 11. Scheduling Algorithms  (0) 2024.04.12
[ 운영체제 ] 10. CPU Scheduling  (0) 2024.04.09
[ 운영체제 ] 8. Thread  (0) 2024.04.05
[ 운영체제 ] 7. Thread  (1) 2024.04.02
[ 운영체제 ] 6. Inter Process Communication / PIPE  (0) 2024.04.01
'3학년 1학기/운영체제 (OS)' 카테고리의 다른 글
  • [ 운영체제 ] 11. Scheduling Algorithms
  • [ 운영체제 ] 10. CPU Scheduling
  • [ 운영체제 ] 8. Thread
  • [ 운영체제 ] 7. Thread
쫑알bot
쫑알bot
주로 복습 / Translator
  • 쫑알bot
    오래 못 할 짓 하지 않기
    쫑알bot
  • 전체
    오늘
    어제
    • 전체 (803)
      • 취약점 분석 (3)
        • AI 다루기 (8)
        • 분석 (1)
      • 보안 및 모의해킹 (142)
        • CTF (Capture The Flag) (91)
        • 사례_솔루션 (7)
        • 개발자라면 (4)
        • 정보보안기사 (8)
        • 악성코드 분석 (28)
      • Security Tool Making (29)
        • Exploit 자동화 ( Automated Exp.. (14)
        • NLP based Deobfuscator (15)
      • 4학년 (144)
        • 알고리즘 문제풀이 (81)
        • 캡스톤 (Capstone) (14)
        • 데이터 과학 ( Data Science ) (18)
        • IoT 실습 (15)
        • Computer Vision (15)
        • 공학윤리 (1)
      • 사진 (14)
        • [1] 빈티지 카메라 (14)
      • 3학년 2학기 (85)
        • 네트워크 (Network) (49)
        • 컴퓨터 보안(Computer Security) (21)
        • 암호학(Cryptography) (6)
        • [ 학회 ] 금융ㆍ경제 (9)
      • 공부 외 (77)
        • 기록 (18)
        • 영화 (16)
        • 조향사 (9)
        • 책 (34)
      • 3학년 1학기 (106)
        • 운영체제 (OS) (48)
        • 데이터베이스(DB) (30)
        • 알고리즘 (Algorithm) (28)
      • 프로젝트 (0)
        • 멋쟁이 사자처럼 (0)
      • 웹 보안 (5)
        • 웹 개발자가 알아야하는 보안 기초 (4)
      • 2학년 2학기 (95)
        • 컴퓨터 구조 (49)
        • 웹서비스 제작 (11)
        • 기독교 변증학 (15)
        • 이산수학 (20)
      • 2학년 1학기 (67)
        • 데이터 구조 ( Data structure ) (22)
        • 논리 설계 ( Logic design ) (26)
        • 오픈소스 소프트웨어 ( OSS ) (12)
        • JAVA (7)
      • 혼자하기 (21)
        • 웹 프로젝트 1) 뉴스 (5)
        • React (4)
        • 연습 1) OAuth (12)
      • 별 용도없음 (0)
        • 과제 중간단계 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코딩테스트
    후킹
    뉴스요약
    DP
    윈도우
    분석
    악성코드
    AI
    어셈블리어
    오블완
    LLM
    LangChain
    보안
    PE_File
    해킹
    MCP
    모델튜닝
    ollama
    악성코드분석
    리버싱
    백준
    Claude
    스택
    알고리즘
    다이나믹프로그래밍
    파이썬
    디버기
    보안분석
    티스토리챌린지
    DLL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
쫑알bot
[ 운영체제 ] 9. Thread(2)
상단으로

티스토리툴바