Operating System 72

스레드 생성 및 제어

스레드에 대한 기본 이론 Win32 스레드 생성 한 Process는 최소 1개 이상의 Thread를 갖는다. 젤 처음 생성되는 메인스레드 Thread는 개별화된 흐름(문맥) 과 전용스택을 갖는 실행의 단위이다. 모든 Thread는 자신이 속한 Process의 가상 메모리공간을 공유한다. 개별 ID(부호가 없는 정수)와 핸들 -> 제어 용도 Win32 스레드 속성 ID, Handle 우선순위(highest, above normal) 상태 (run, suspended , terminated) 친화력 (Cpu core) 주로 gui 앱 같은곳에서 event loop 방식으로 해결함 -> gui event thread는 오래걸리는 작업들은 새로운 스레드에서 작업을 진행해서 반응성을 높게 해줌 스레드 생성 및 종..

기본 이론

대전제 (feat. 핸들) 결국 내가 작성하는 코드는 실행 주체이며 Process 이다. 주체가 아닌 나머지는 모두 객체 (대상체) 이다. 모든 객체는 주체가 생성/개방 할 수 있으며 사용 후 삭제하거나 닫는다. 자료형을 재정의 한게 굉장히 많다. F12 를 눌러서 windows.h, winnt.h 로 가서 어떤 자료형을 warpping 한것인지 확인하자 모든 객체 (프로세스 포함) 를 식별하는 것은 핸들(Handle) 이며 핸들의 실체는 결국 포인터이다. 핸들에 대한 토큰은 핸들이 식별하는 대상에 관한 정보를 담은 구조체로 이해한다. 보안 객체와 (보안) 기술자 보안 객체에 대한 정보 (객체의 소유자, 그룹, 보호 속성, 감사 정보) 를 의미 객체 소유자 및 그룹 보호속성 (Protection attr..

Lec33) Overview of TCP/IP Architecture and Service

Application Layer Consist of process that use the NW(Network) Porvides progamming interface used for building a program Protocols used are http, telnet, ftp, smtp, ssh Addresses are string based URIs (URL, URN) Transport Layer Provides host to host communication Protocols used are TCP ,UDP , RAW 16 bits Port numbers are used for addressing Internet Layer Break data into fragments small enough fo..

Lec29, 30) Programming With Shared Memory , Memory Mapped Files

Shared Memory allows 2 or more processes to share a memory region or segment of memory for reading and writing purposes the problem with pipes, fifo and message queue is that mode switches are involved as the data has to apss from one process buffer to the kernel buffer and then to another process buffer since access to user-space memory does not require a mode switch , thereofre , shared memory..

Lec26,27) Programming UNIX Pipes and Named Pipes

pipe system call Creating pipe is similar to opening 2 files. A successful call to pipe() returns 2 open file descriptors in the array fd. one contains the read descriptor of the pipe, fd[0] , and the other contains the write descriptor fo the pipe fd[1]. if pipe(fd) fails it returns -1. to make parent process writer and child process reader we close fd[0] from parent process and close fd[1] for..

Lec25) Design and Code Of Signal Handlers

kill system call int kill(pid_t pid, int sig); if sig is zero than normal error checking is performed but no signal is sent. Used to determine if a specified process still exists. if it doesn't exist, a -1 is returned and errno is set to ESRCH if pid > 0 , the signal is sent to the process with the process ID specified by first argument if pid == 0 the signal is sent to every process in the same..