반응형

공부해요 93

스레드 병행프로세스 퀴즈

Q1. 프로세스를 실행 단위로 하는 멀티태스킹의 문제점을 해결하기 위해 출현한 프로세스보다 크기가 작은 효율적인 새로운 실행 단위는 무엇인가?더보기A1. 스레드  Q2. 다음 중 스레드의 생명과 프로세스의 생명에 대한 관계 중 올바르지 않은 것을 고르시오.① 스레드로 만든 함수가 종료하면 스레드는 종료된다.② 스레드가 종료하면 TCB 등 스레드 관련정보는 모두 제거된다.③ 프로세스에 속한 첫번째 스레드가 종료될 때, 프로세스가 종료된다.더보기A2. ③.프로세스에 속한 모든 스레드가 종료될 때 프로세스가 종료된다.  Q3. 협력 프로세스와 스레드는 실행 순서에 따라 결과 가 다른 □ □ □ □에 의해 재현이 어려워진다.더보기A3. 비결정성(non-determinism)

병행프로세스와 상호배제

병행 프로세스와 상호배제학습 목표프로세스 및 스레드 동기화상호배제 (Mutual Exclusion)멀티스레드 동기화 기법생산자 소비자 문제모니터 오늘은 프로세스 및 스레드 동기화만..병행 프로세스병행 프로세스는 운영체제가 프로세서를 빠르게 전환하여 프로세서의 시간을 나누어 사용함으로써 여러 프로세스가 동시에 실행되는 것처럼 보이게 하는 개념임. 크게 독립 프로세스와 협력 프로세스로 나뉨.독립 프로세스: 다른 프로세스에 영향을 주고받지 않으며 독립적으로 실행됨.협력 프로세스: 다른 프로세스와 상호작용하며 특정 기능을 수행하는 프로세스.협력 프로세스와 스레드협력 프로세스 및 스레드는 다른 프로세스 또는 스레드와 상호작용하는 특성을 가짐. 자원의 공유, 빠른 수행, 모듈화된 시스템 구성을 위해 필요함.특성:자..

프로세스와 스레드(2)

스레드의 개념과 특성스레드는 프로세스 내에서 독립적으로 실행되는 가벼운 실행 단위임. 스레드는 동일한 프로세스 내에서 실행되며, 프로세스 자원을 공유함으로써 자원 사용이 효율적임. CPU 스케줄링에서 프로세스보다 더 가볍게 다뤄지며, 병렬 처리를 가능하게 함. 다수의 스레드가 같은 프로세스 내에서 동작하기 때문에 컨텍스트 전환이 빠르고, 메모리 사용이 절감됨.  스레드의 종류사용자 수준 스레드(User-level thread, n:1 모델): 커널에서 직접 인식되지 않고 사용자 영역에서만 관리됨. 커널 개입이 없으므로 전환이 빠르지만, 하나의 스레드가 블로킹되면 프로세스 전체가 블로킹될 수 있음.커널 수준 스레드(Kernel-level thread, 1:1 모델): 커널이 직접 스레드를 관리하고, 전환도..

13. PE File Format

PE(Portable Executable) 파일은 Windows 운영 체제에서 사용되는 실행 파일 형식을 의미하며, Microsoft에서 기존 UNIX 시스템에서 사용된 COFF(Common Object File Format)를 기반으로 개발됨. 주로 32비트 및 64비트 Windows 시스템에서 실행되는 프로그램 및 라이브러리를 위해 설계됨.32비트 파일은 PE(Portable Executable) 형식을 따르며, 64비트 파일은 PE+ 또는 PE32+로 불림.  PE File Format종류주요 확장자실행 계열EXE, SCR라이브러리 계열DLL, OCX, CPL, DRV드라이버 계열SYS, VXD오브젝트 파일 계열OBJ EXE 파일: 주로 프로그램 실행 파일로 사용되며, 사용자가 직접 실행 가능함.D..

프로세스와 스레드 퀴즈

Q1. 다음 중 옳은 것을 고르시오.① 각 프로세스는 사용자 공간과 커널 공간으로 나뉜다.② 시스템 전체에는 여러 커널 주소 공간이 있다.③ 모든 프로세스는 커널 주소 공간을 독립적으로 사용한다.④ 사용자 공간에서의 명령어는 커널 공간에서도 사용할 수 있다.더보기A1. ① 각 프로세스는 사용자 공간과 커널 공간으로 나뉜다. - 해설② 시스템 전체에는 하나의 커널 주소 공간이 있다.③ 모든 프로세스는 커널 주소 공간을 공유하여 사용한다.④ 사용자 공간에서의 명령어는 커널 공간에서도 사용할 수 없다. Q2. 프로세스 관련 system call에서 자식 프로세스를 생성하는 시스템 호출은 무엇인가?더보기A2. fork() Q3. Process Table이란 시스템의 프로세스 관리를 위한 표이며 한 시스템 내에 ..

프로세스와 스레드

1. 프로세스 개념과 상태 변화1.1. 프로세스와 프로그램의 차이프로그램은 하드디스크와 같은 저장 매체에 저장된 실행 파일임. 우리가 컴퓨터에서 실행할 수 있는 파일들(예: .exe 파일, .out 파일) 등이 프로그램임. 이 프로그램은 단순히 저장된 상태로는 동작하지 않음.프로세스는 프로그램이 메모리에 올라와서 실제로 실행 중인 상태를 의미함. 즉, 프로그램이 실행되면 운영체제가 그 프로그램을 메모리에 올리고, 메모리에 올라간 프로그램을 CPU가 실행하면서 프로세스가 됨.프로세스는 실행 중인 프로그램에 대한 여러 정보들을 포함함. 예를 들어, 메모리 상태, 실행 중인 명령어, 열려 있는 파일 목록 등을 관리함.프로세스의 메모리 컨텍스트: 프로세스가 실행될 때 사용되는 메모리는 크게 네 가지로 나눌 수 ..

11장. Lena's Reversing for Newbies

파일을 실행해보았다. -모든 성가신 Nags를 업애라- registration code를 찾아라 확인버튼을 누르면 위에처럼 뜬다. 화면에 파란 글씨에서 SmartCheck를 사용하라함. 목표1. 메시지 박스 제거"Get rid of all Nags"올리디버거를 통해 파일을 열어보자 MSVBVM50.ThunRTMain함수를 찾을 수 있음 목표인 메시지 박스를 제거하려면 메시지 박스 함수 호출 부분을 조작하면 됨.[Search for] - [All intermodular call] 사용해서 API 호출 목록을 확인하였다.메시지 박스 함수를 하나 발견하고 모든 rtcMsgBox를 호출하는 코드에 BP를 설치해둔다. 이 상태로 프로그램을 실행시키면 break point가 설치된 곳에서 실행이 멈추게 된다.멈춘 ..

10장. 함수 호출 규약

함수 호출 규약 (Calling Convention)함수 호출 규약은 함수를 호출할 때 파라미터를 어떻게 전달하고 스택을 어떻게 관리하는지에 대한 규칙임. 이 규칙은 주로 함수 파라미터가 스택을 통해 전달될 때 적용되며, PE(Portable Executable) 헤더에 스택 크기가 명시되어 있음.스택 관리 개요파라미터 전달: 함수 호출 시 파라미터는 스택에 역순으로 전달됨. 스택 크기는 프로세스 실행 시 결정됨.함수 종료 후 스택 상태: 함수가 실행을 마친 후에도 스택에 입력된 파라미터는 그대로 둠. 불필요한 CPU 자원을 사용하지 않기 위해 값을 지우지 않고, 어차피 다음 호출에서 덮어씌워질 것임.ESP 복원: 함수 실행 완료 시 **ESP(스택 포인터)**는 함수 호출 전 상태로 복원되어야 함. 그..

9장. Process Explorer - 최고의 작업 관리자

Process Explorerhttps://learn.microsoft.com/ko-kr/sysinternals/downloads/process-explorer Process Explorer - Sysinternals프로세스가 열어 둔 어떤 파일, 레지스트리 키, 기타 개체, 로드한 DLL 등을 찾으세요.learn.microsoft.com 프로세스 관리 유틸리티 다운로드한 후 실행화면 위 좌측: 현재 실행 중인 프로세스들을 parent/child의 트리 구조로 표시우측: 프로세스 각각의 PID, CPU 점유율, 등록정보  Process Explorer의 장점- Parent/Child 프로세스 트리 구조- 프로세스 실행/ 종료 시 각각의 색깔(초록/빨강)로 표시- 프로세스 Suspend/Resume 기능(..

프로그램 수행과 예외처리 및 시스템 콜 퀴즈

Q1. 다음 exception 중 특성이 다른 하나를 고르시오.① Interrupt② Trap③ Fault④ Abort더보기A1. ① Interrupt: 나머지 보기는 모두 동기예외이며 Interrupt만 비동기예외이다. Q2. 한 프로그램이 실행 중인 일체의 상황 혹은 상황 정보를 무엇이라 하는가?더보기 A2. context Q3. 다음 설명 중 옳지 않은 것을 고르시오.① 표준 라이브러리는 OS나 HW에 상관없이 이름이 동일하다.② 32비트 CPU에서 리눅스이 프로세스 주소 공간을 보았을 때 미할당 영역에서는 힙은 아래로, 스택은 위로 자란다.③ page fualt는 CPU에는 없지만 메모리상에 있는 페이지를 접근할 때 발생한다. ④ 프로세스의 메모리 배치는 코드영역, 데이터 영역, 힙 영역, 스택 ..

반응형