본문 바로가기

반응형

OS 공부

(10)
OS 공부 - Thread, 멀티스레딩, 멀티코어 Threadlightweight process가장기본적인 CPU를 점유하는 단위가 스레드가 된다. CPU 이용의 기본 단위PID가진 프로세스가 CPU를 점유하는게 아니라 thread(TID)가 CPU를 점유한다.프로그램카운터, register set, 스텍은 스레드마다 달라야한다. 일반적으로 하나의 제어 쓰레드를 가지고 있는 중량 프로세스는 한번에 한가지의 작업만을 수행함, 만약에 하나의 프로세스에 여러개의 쓰레드가 존재한다면, 프로세스는 동시에 하나 이상의 작업들을 수행할 수 있다. => 쓰레드는 한 프로세스안에서 동시에 여러 작업들을 수행할 수 있게 해주는 프로세스 안의 작은 프로세스(경량 프로세스 또는 쓰레드) 하나의 프로세스가 여러개의 thread of control을 가질 수 있다.cpu의 프로..
OS 공부 - IPC, RPC, shared memory, 파이프, 소켓 IPC Systems 사례Shared Memory: POSIX Shared MemoryMessage Passing: Pipes Shared Memory: POSIX Shared MemoryPOSIX(Portable Operating System Interface(for uniX)):서로 다른 UNIX OS의 공통 API를 정리하여 이식성 높은 유닉스 응용 프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 규격memory-mapped 파일 이용할 수있다. -> 파일이 보통 HDD의 스토리지 시스템에 있는데, 메모리에 파일을 생성하면 겁나 빠름memory-mapped files 이용해서 shared 메모리를 점유한다.-> 파일을 메모리에 매핑시킨다. fd = shn_open(name..
OS 공부 - 프로세스간 통신, IPC, shared memory, Message-Passing 프로세스 독립적(independent)이거나 동시실행(cooperating)되거나,독립적이면 혼자 잘 실행되고 자기들끼리 서로 영향 안 미치고 잘 공존한다. 독립적인 프로세스:공유하는 데이터도 없고, 서로 메시지 주고받을 일도 없다. cooperating 프로세스:영향을 주거나 받거나 함. 데이터 , 메시지를 주고받을때 생기는 메시지 어떻게 해결할 거냐?? -> IPC다른 프로세스들에게 영향을 줄 수 있음다른 프로세스들과 데이터를 공유하는 프로세스들은 상호협력적인 프로세스들임 IPCInter - Process Communication프로세스들은 프로세스들끼리 독립적이거나 또는 상호협력적으로 동시에 실행됨데이터를 주거나 받거나 통신을 어떻게 하는지??cooperating(상호협력적인) 프로세스들은 IPC ..
OS 공부 - parent, child, fork, execlp 프로세스 : a program in excution프로그램이 메모리에 로드된 상태 UNIX 에서새 프로세스는 fork()라는 시스템 콜에 의해서 생성된다.child process는 parent 주도공간을 (address space) 복사한다.parent와 child는 fork() 이후 instruction들을 계속 실행한다.리턴 코드가 0 이면 child고 pid를 리턴하면 parent다int main(){ pid_t pid; pid = fork(); printf("Hello, Process! %d\n", pid);}부모 P0가 실행되고 fork()하면 자식이 만들어지고 둘다 "Hello, Process"한다.실행결과:Hello, Process ! 2547Hello, Process ! 0부모 프로세..
OS 공부- 프로세스, PCB, Context switch, thread 프로세스실행중인 프로그램프로세스는 운영체제에서 작업 단위 프로세스가 실행되기 위한 자원CPU timememoryfilesI/O devices 프로세스HDD 나 SSD 에있는 실행파일이 스토리지에 저장되어 있는데 CPU가 가져와서 실행하지는 못함->프로그램(set of instruction)을 메모리에 로드하면 CPU입장에선 패치해가지고 실행할 수 있는 상태가 됨 : 프로세스=> 메모리에 적재된 프로그램메모리에 올라와 있다고 해도 다 실행되는게 아니라 CPU를 점유해야됨OS가 해야할 가장 기본적인 일 : 프로세스 관리 여러개의 섹션으로 나눠져 있는 이 프로세스의 메모리 레이아웃:Text section : the executable code 명령어들이 있는 코드Data section: global varia..
OS 공부 - 컴퓨터 시스템 구성, 구조, 운영체제 연산 운영체제유저, 애플리케이션, h/w간에 중간 매개역할H/W, OS, 애플리케이션프로그램, and a user컴퓨터 위에서 항상 실행되는 하나의 프로그램Kernel로도 정의하드웨어를 제어하는 소프트웨어유저와 하드웨어 사이의 중계자  kernel"OS는 항상 running 하고 있는 프로그램"핵심은 kernelkernel에서 system program과 application program에 대한 interface 제공한다. mordern computer system전통적인 컴퓨터 시스템 구조: CPU, 여러개의 디바이스 컨트롤러, common bus로 연결1개 이상의 CPU로 구성되었고 버스(Bus)를 통해서 연결된 기기 제어기(Device Controller)로 연결CPU는 메모리에 명령어들을 저장하고 기..
OS 공부 - 운영체제, 컴퓨터, 프로그램 운영체제란windows10, Linux, MacOSOperating system: 뭔가 운영하는 체제: 컴퓨터 시스템을 운영하는 소프트웨어운영체제는 응용 프로그램(Application Programs)과 하드웨어(Hardware) 사이에 위치응용 프로그램을 통해서 어떤 서비스를 요청하면 응용 프로그램은 운영체제에게 메시지를 전달하고 하드웨어를 조작해달라고 요청한다.그 전달을 받은 운영체제는 서비스에 맞는 하드웨어(CPU, 메모리, HDD, 모니터 등)를 작동시켜 서비스를 완수한다.예를들어 응용프로그램을 이요해 3+4에 대한 결과를 요청한다.-> 프로그램 내에 수식 계산하는 명령어 os에 전달한다. -> os는 cpu, 메모리, h/w를 조작하여 7이라는 답을 도출하고 반환한다. 컴퓨터의 정의스마트폰과 같..
OS 공부 - CPU 스케줄링, RR, Priority, MLQ, MLFQ 배운점 RR SchedulingRound-Robin: preemptive FCFS with 시분할(time quantum)(=time slice)시간 할당량(time quantum) 또는 시간 조각(time slice)이라고 하는 작은 단위의 시간 정의, 일반적으로 10에서 100밀리초process 들어 왔을 때 일정 time quantum 지나면 너, 나가(watch dog라는애가 시킴) 한 프로세스에게 한번의 시간 할당량 동안 CPU를 할당합니다.ready Queue: circular queue  =>라운드 로빈 스케줄링은 시간 할당량을 정의하고 원형 큐에 프로세스들을 넣은 다음 각 프로세스에게 정의한 시간 할당량 만큼 CPU를 할당시키고 수행실행하던 프로세스는 준비 완료 큐의 꼬리(tail)에 넣음..

반응형