목록펭귄's directory (180)
한땀한땀 정성들인 코딩
상호배제점유와 대기비선점환형대기 위의 조건중 하나라도 부정시 교착상태 예방 예방 -교착상태 필요조건 4가지 부정 탐지-주기적으로 교착상태를 탐지 회피-교착상태가 발생할려고 하는 경우 피해가는 방법-안정상태, 은행원 알고리즘 회복-교착상태의 발생을 탐지하여 시스템 또는 운영자가 교착상태로부터 벗어나게 함-프로세스 중지 : 교착상태를 일으킨 프로세스 종료 -자원선점 : 교착상태의 프로세스에 할당된 자원을 선점 빅데이터에서 교착상태를 피하는 방법은 상호배제를 쓴다.(hbase기준)원자성이 없으므로 한 컬럼은 여러 값을 가질수 있고 (식별은 타임스탬프 한다.)불변값(update를 안하는 값) 읽기만을 수행하여 유령읽기,손실읽기를 방지한다.
프로세스와 쓰레드 process-메모리에 있는 프로그램-code,data,head,stack 영역으로 이루어짐 (프로세스가 실제로 메모리에서 할당받는 세그먼트를 공부하자. heap과 stack 쓰임새를 알아야 하고 특히 stack 부분의 변수가 들어가는 위치나 cpu 레지스터 push,pop등을 이해해야 bof 공격기법을 이해할수 있다. 뿐만 아니라 shellcode 작성을 위한 어샘블리어를 같이 이해하는 것이 좋다.) thread-경량화 된 프로세스 -별도의 stack만 가지고 나머지는 프로세스의 영역을 공유한다.-쓰레드간 자원공유가 가능하지만 한편으론 동기화의 문제가 발생한다.(교착상태..)-디버깅이 어려워짐-다른 프로세스에서 쓰레드를 직접 제어할수 없음.
프로세스 제어 블록(Process Control Block, 줄여서 PCB)은 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영 체제 커널의 자료 구조이다. 작업 제어 블록(Task Control Block, 줄여서 TCB) 또는 작업 구조라고도 한다. "PCB는 운영 체제가 프로세스를 표현한 것이다 운영체제에 따라 PCB에 포함되는 항목이 다를 수 있지만, 일반적으로는 다음과 같은 정보가 포함되어 있다. 프로세스 식별자(Process ID)프로세스 상태(Process State): 생성(create), 준비(ready), 실행(running), 대기(waiting), 완료(terminated) 상태가 있다. - 유예준비상태suspended ready, 유예대기상태suspended wait 는 ..
init프로세스 -시스템 초기화 프로세스, 모든 프로세스의 부모 프로세스, 부팅 후 pid 1 리눅스/etc/inittab 우분투 /etc/init/rc-sysinit.conf run level0 - 종료 1 - 단일사용자 2 - 다중사용자(NFS 미사용) 3 - 다중사용자 모드 4 - 사용하지 않음 5 - X11(GUI) 6 - 재부팅 *네트워크 파일 시스템(Network File System, NFS)은 1984년에 썬 마이크로시스템즈가 개발한 프로토콜
※ 윈도우의 인증 구조- 식별(identification) : ID- 인증(Authentication) : PW- 권한 부여(Authorization) : SID * 인증 프로세스의 구성요소- 중요한 부분은 LSA. - winlogon(winlogon.exe) : 윈도우 로그인 프로세스의 한 부분이다.- GINA(msGINA.dll) : winlogon 내에서 msgina.dll을 로딩시켜 사용자가 입력한 계정과 암호를 LSA로 전달.- LSA(lsass.exe) : 전달받은 계정과 암호를 검증하기 위해 NTLM 모듈을 로딩하고 계정을 검증한다.SRM이 작성한 감사로그를 기록하는 역할을 수행한다. - LSA의 구조 1. SAM - 사용자 계정 정보(해쉬값)가 저장2. SRM : 사용자에게 고유의 SID를..
ProgramFiles 프로그램 기본설치경로HomePath 사용자 홈 폴더SystemRoot 운영체제 및 어플리케이션 설정 저장경로 .exe alg 인터넷연결,공유,방화벽ctfmon 고급 텍스트서비스csrss 콘솔,쓰레드 생성/삭제dllhost dll기반 ap관리explorer 작업표시줄,바탕화면lsass 윈도우 보안 메커니즘mstask 시스템백업,업데이트services 서비스관리smss 시스템 변수,winlogon, csrss 프로세스구동spoolsv 스풀링svchost dll에 의해 실행되는 프로세스의 기본 프로세스system 대부분 커널스레드 시작점taskmgr 작업관리자winlogon 사용자 로그인,로그오프 관리 dll( dynamic link library)?- 마이크로소프트 윈도우에서 구현된 ..
사용자모드 프로세스-------------------------------------------------커널모드파일관리주변장치관리프로세그놔리메모리관리프로세서관리하드웨어 프로세스가 os에 하는 요청 syscall함수syscall.h에 여러 함수가 정의 되어있다. 어플리케이션 -->라이브러리->커널 -->시스템함수->커널
모놀리딕 - 커널과 동일한 메모리공간에 입출력,네트워크,장치 드라이버 적재 linux 마이크로 - 기본적인 기능만 적재, 필요에 따라 추가 window 하이브리드 - 모놀리딕+마이크로 모놀리딕가상 파일 시스템ipc, 파일 시스템스케줄러, 가상 메모리장치드라이버, 디스패쳐 마이크로ipc기본가상메모리스케줄링ap ipc,장치드라이버,파일서버 -> 사용자모드 에서 동작한다.window에선 각종 장치드라이버를 따로 설치 해야 하는것은 쓰다보면 알수있다. ipc란? (Inter-Process Communication) 프로세스간 통신 리눅스에서 지원하는 c언어 api를 이용해 코딩 해보자. 1. fork함수 이해#include #include int main(void){ pid_t ret; ret = fork();..
리눅스/유닉스의 구조 유닉스 링 구조 : 하드웨어, 커널, 셸, 응용 프로그램으로 구성 윈도우보다 훨씬 단순, 크게 파일 서브 시스템, 장치 드라이버, 프로세스 제어로 나뉘며, 커널의 파일 크기 또한 윈도우의 1/3 정도 프로세스 제어에서는 전체 프로세스 간 통신, 스케줄링, 메모리 관리를 구현, 장치 드라이버는 윈도우에서처럼 하드웨어와 소프트웨어를 연결해주는 인터페이스를 제공 파일 서브 시스템은 하드 디스크와 같은 저장 공간에 유닉스의 파일을 저장하고 읽는 역할 셀 개념 응용 프로그램에서 명령을 받아 커널에 전송하는 역할, 사용자의 키보드 입력 인식 해당 프로그램을 수행 셸(Shell)의 종류 – 본 셸(Bourne Shell), 콘 셸(Korn Shell), C 셸(C Shell) 셸이 제공하는 주요..
윈도우 관리자의 역할 – 입출력 관리자(I/O Manager) : 시스템의 입출력을 제어 – 객체 관리자(Object Manager) : 파일, 포트, 프로세스, 쓰레드 등의 객체들에 대한 정보를 제공 – 보안 참조 관리자(Security Reference Monitor Manager) : 각 데이터나 시스템 자원의 제어를 허가 하거나 거부함 – 프로세스 관리자(Process Manager) : 쓰레드를 생성하고 요청에 따라 처리 – 로컬 프로시저 호출 관리자(Local Procedure Call Manager) : 프로세스 간 통신을 가능하게 해 주는 장치 – 가상 메모리 관리자(Virtual Memory Manager) : RAM의 메모리를 할당하고, 가상 메모리의 페이징 (Paging)을 제어 – ..