Operating System

application process나 thread가 사용하는 모델은 세마포어와 모니터 + mutex lock세마포어는 바이너리와 카운팅이 있는데 바이너리는 mutex lock 형태와 같게 사용할 수 있다.Classical Problems of SynchronizationBounded-Buffer ProblemReaders and Writers ProblemDining-Philosophers ProblemBounded Buffer Problembusy-wait을 하게 됨. CPU 낭비. CPU를 사용하지 않고 block 상태로 waiting 하도록 해야 함. 세마포어를 통해 구현critical section 보호가 되지 않고 있다.(M.E가 안되고 있음)세마포어 변수 mutex로 critical secti..
앞에서 배운 내용들은 CPU관리6장 7장은 프로세스 간 혹은 스레드 간 동기화IPC의 두 가지 모델 shared memory, message passingshared memory 모델에서 데이터를 write 했는지 알아야 데이터를 가져갈 수 있음 그래서 shared memory를 사용하는 프로세스 간 동기화 메커니즘(동기화 툴)을 kernel이 제공해야 한다.shared memory는 데이터를 직접 쓰고 읽기 때문에 오버헤드가 제일 작다.message passing은 커널에다가 쓰고 커널에서 읽어가야 하니까 데이터를 복사하는 오버헤드가 존재한다. 상대적으로 느림Synchronization스레드(프로세스)들이 서로 협력하면서 동작, 실행순서를 조정멀티 스레드나 멀티 프로세스가 공유 데이터를 접근하는 상황에..
CPU burst : 명령어들의 집합을 수행하는 구간I/O burst : I/O가 끝나기를 기다리는 구간CPU burst vs I/O burstCPU-bound process : CPU burst 가 길고 I/O burst 가 짧은 프로세스 (딥러닝)I/O-bound process :  I/O burst가 길고 CPU burst 가 짧은 프로세스 (hwp, mp3)사용자와 상호작용하며 동작하는 프로그램들은 I/O-bound process (우리가 사용하는 것들 대부분)과학 계산하는 시뮬레이션 프로그램들은 CPU-bound process현재 많이 쓰이는 프로그램들은 대부분 CPU-burst가 작은 프로그램들Dispatcher스케줄링: Ready 상태에 있는 프로세스 중에 실행시킬 프로세스를 고르는 것디스패..
Processunix/linux가 처음 나왔을 때는 프로세스만 있었다.OS의 성능을 개선시키는 방향으로 발전프로세스는 Heavy-weight, 너무 많은 것들을 가지고 있고 child 프로세스를 만들기 위해 그것들을 복사해 놔도 잠깐 실행되고 끝나는 경우가 많음운영체제에서 프로세스를 만드는데 들어가는 오버헤드가 10이라면 실제 수행은 3~4 정도만 하고 끝나버림개선을 하기 위해서 나온 개념이 스레드Thread Concept: Key Idea 스레드는 프로그램을 통한 execution path다.모든 프로그램은 적어도 하나의 스레드를 가지고 있다.a는 프로세스 하나당 실행 path가 하나씩 밖에 없음b는 프로세스는 하나인데 그 안에 실행 path(스레드)를 여러 개 만든 것스레드는 한국어로 실 싱글 스레드..
Program vs process 프로그램 디스크 또는 파일 시스템에 저장된 실행파일 메모리로 로딩돼서 실행됨 프로세스 메모리로 로딩돼서 실행되는 주체 실행과 스케줄링의 기본적인 단위 프로세스는 id라는 이름이 붙여지는데, PID는 정수 프로그램의 실행 주체, 프로그램의 인스턴스 Process Address Space 프로그램의 address space가 0번지부터 위로 올라감 제일 밑 부분에는 텍스트(코드) 세그먼트, CPU의 명령어들이 순차적으로 실행된다. 데이터 세그먼트 프로그램이 실행되는 동안 항상 메모리를 차지하고 있는 변수들(static data or 전역변수)이 저장되는 곳 함순 내부에 저장되는 지역변수들은 스택에 저장, 함수가 수행될 때 일시적으로 생겼다가 함수가 끝나면 사라짐 힙은 동적메..
Operating System Services 가장 중요한 것은 system call, application program들이 hardware를 쉽게 사용할 수 있는 인터페이스 제공 traditional computer에서 사용했음 다양한 인터페이스 system program과 대비되는 개념은 application program 좁은 의미의 컴파일 : .c를 .o 즉, 오프젝트 파일로 만드는 일을 수행하는 도구, .c파일 하나당 .o파일 하나가 생김 .o파일들과 라이브러리를 합쳐서 하나의 실행파일로 만드는 작업을 링킹, 실행파일을 메모리에 올려서 실행해 주는 로더 넓은 의미의 컴파일 : 컴파일 + 링킹 trade-off 관계가 있다. static linking : 많은 프로그램이 로더에 의해 메모리에 올..
Memory CPU, Memory, I/O 장치를 이야기할 때 여기 Memory는 Main Memory를 의미한다. 위 그림은 secondary storage부터 다 나와있다. Main Memory 밑에는 I/O 장치들 계층 위에서 아래로 갈수록 값이 싸지고 용량이 커짐, 위로 갈수록 성능(memory read&write)이 빨라짐 ROM (read only memory) (non-volatile memory) 읽기만 하는 것 쓸 수는 없음, 전원이 꺼지더라도 데이터가 계속 저장되는 장치, 비휘발성 메모리 전원이 꺼지더라도 데이터가 계속 저장되지만, 다시 쓸 수도 있는 ROM을 flash memory(nor, nand) RAM (Main Memory) (random access memory) (volat..
컴퓨터란? 컴퓨터 하드웨어 위에서 컴퓨터 소프트웨어가 수행되는 장치 컴퓨터 하드웨어는 CPU, MEMORY, I/O장치로 구성된 기계 personal computer, sever computer, embedded computer... 요즘에 나오는 자동차, 스마트 TV 등 운영체제란? 컴퓨터 하드웨어 자원을 관리해주는 소프트웨어 CPU, MEMORY, I/O장치들을 관리한다. 컴퓨터 구조 운영체제를 시작하기 전에 컴퓨터 구조에 대해서 알아보자~ CPU, memory, 나머지는 I/O장치들, 이 장치들은 bus로 연결되어 있다. 여기 bus로 데이터가 이동을 한다. 각 장치들 간에 데이터가 왔다 갔다 하는데, 버스는 1대만 있어서 CPU가 메모리에서 데이터 읽는 동안은 다른 곳에서 CPU로 가는 데이터가 ..
SON!
'Operating System' 태그의 글 목록 (2 Page)