분류 전체보기
-
OS: Thread(cooperating system)os 운영체제 2024. 4. 8. 23:34
Process를 보는 두가지 시야: ● 리소스 소유 단위 프로세스에는 프로그램 코드 및 데이터가 포함된 주소 공간이 있음. 프로세스에 파일이 열려 있거나 I/O 장치를 사용하는 경우. ● 스케줄링 단위 CPU 스케줄러는 한 번에 하나의 프로세스를 CPU로 전송. 프로세스와 연관된 것은 PC, SP 및 기타 레지스터의 값. (~1988) 두가지 단위를 묶을 필요가 없다 Process = 리소스 소유 단위 Thread = 스케줄링 단위 스레드(LWP): 프로세스 내의 단일 순차적 실행 스트림 쓰레드는 child를 생성/block 할 수 있음 동시에 실행 됨 (고유한 레지스터=>프로그램 카운터(PC), 스택&스택 포인터(SP) 보유) 동시성 vs 병렬성 더보기 2. Concurrency vs Paralleli..
-
OS: RPCos 운영체제 2024. 4. 8. 21:59
RPC(Remote Procedure Call): 일반적으로 프로세스는 자신의 주소공간 내의 함수만 호출, RPC는 다른 주소공간의 프로세스의 함수를 실행할 수 있음.(네트워크 사용) - Client-Server 간의 커뮤니케이션에 필요한 상세정보는 최대한 감춘다. (=> 언어나 환경에 구애를 받지 않는다! ) - Client와 Server는 각각 일반 메소드를 호출하는 것처럼 원격지의 프로시저를 호출할 수 있다. 과정 1. 클라이언트 프로시저가 클라이언트 스터브를 호출 2. 클라이언트 스터브는 매개변수들을 pack해서 kernel을 trap함 3. 커널이 원격 커널에 메시지 보냄 4. 원격 커널이 서버 스터브에 메시지를 줌 5. 서버 스터브가 매개 변수를 unpack하고 서버를 호출함 6. 서버가 프로..
-
-
OS: 프로세스, IPC, fork/execos 운영체제 2024. 4. 3. 21:51
출처 Process Scheduling: 어떤 프로세스에게 cpu를 할당할지 정함. 1. Long-Term Scheduler (장기 스케줄러 or Job Scheduler) 시작(디스크에 있는) 프로세스 중 어떤 프로세스를 Ready Queue로 보낼지를 결정하며, 프로세스에 메모리 및 각종 자원을 할당한다. 자주 발생하지는 않는다. 또 Degree of Multiprogramming(메모리에 몇 개의 프로세스가 존재하는지)를 제어한다. Time-sharing 시스템에서는 보통 Long-Term Scheduler가 존재하지 않고 무조건 Ready Queue로 올라가는 방식이다. 2. Short-Term Scheduler (단기 스케줄러 or CPU Scheduler) 어떤 프로세스를 다음에 실행시킬지를 ..
-
네트워크 5주차: Transport Layer (Multiplexing, Demultiplexing, PDU, RDT)교내 강의/컴퓨터 네트워크 2024. 4. 3. 18:14
Encapsulation, Decapsulation: PDU(Protocol Data Unit): Segment: Data Chunk + Port# (Transport layer) Datagram: Segment + IP Addr (Network layer) Frame: Datagram + HW Addr (Data Link layer) Multiplexing(다중화): Application Layer->Network Layer로 소켓을 통해 받은 데이터를 세그먼트로 캡슐화하여 네트워크 계층으로 전달 Demultiplexing(역다중화): 네트워크 계층으로부터 전달받은 세그먼트의 헤더 정보를 확인하여, 응용 계층의 각각 올바른 소켓으로 전달해 주는 과정 해더에 있는 주소 정보: Source IP, Port..
-
OS: 프로그램의 구조, 인터럽트, Syscall, 프로세스 실행 상태os 운영체제 2024. 3. 28. 18:58
프로그램의 구조: 프로그램이 CPU에서 명령을 수행하려면 해당 명령을 담은 프로그램의 주소가 메모리에 올라가 있어야 함. 프로그램의 주소 영역: 코드 : 프로그램 함수들의 코드가 기계어 명령 형태로 변환되어 저장되는 부분 데이터 : 전역 변수등 프로그램이 사용하는 데이터는 저장하는 부분 스택 : 함수가 호출될 때 호출된 함수의 수행을 마치고 복귀할 주소 및 데이터를 임시로 저장하는 부분 인터럽트: 인터럽트 때문에 CPU를 빼앗긴 위치는 운영체제가 관리하는 PCB(프로세스 제어 블록)에 저장됨 인터럽트가 발생하면 PCB에 해당 프로그램의 수행 위치를 저장. 인터럽트 처리 후 PCB에 저장된 주소를 복원시켜 원래 하던 일을 재개. CPU는 PC가 가리키는 메모리 위치의 프로그램을 수행한다. CPU가 운영체제..
-
OS: 스풀, CISC, 데드락os 운영체제 2024. 3. 27. 21:08
스풀(Simultaneous Peripheral Operation On-Line): CPU와 IO가 독립적으로 동작하도록 함, I/O가 CPU보다 느림 -> 대기시간 발생 -> 이를 해결하기 위해 스풀러가 고안됨 스풀러는 디스크를 매우 커다란 버퍼로 사용함 (원래는 메인메모리를 버퍼로 사용) 다중 프로그래밍 환경에서 다수의 프로세스들이 서로 입출력 장치를 요구하거나 그 장치의 수가 제한 되어 있는 경우 이를 공유하기 위해 가상장치를 각 프로세스에게 제공해준다. CPU와 I/O가 혼합된 작업의 경우, I/O의 처리를 기다리지 않고 이를 가상장치를 통해 디스크에 넣어둔 다음, CPU가 다른 작업을 수행할 수 있게 한다 스풀링은 스풀을 적용하는 것 또는 스풀을 위해 마련된 저장공간을 채우는 동작을 뜻한다. ..
-
알고리즘: (BIT 부분 합, 누적 합)알고리즘 2024. 3. 27. 18:45
부분 합:A[n]배열이 있을 때, a,b (0A[a]~A[b]까지 더하는 문제. 1. Brute-force1. 순회하여 부분 합을 구한다. 전처리: x시간복잡도: O(n) 2. O(n) 전처리, O(sqrt(n)) 질의1. 배열 A를 sqrt(n)개의 원소씩 그룹으로 묶음2. 각각의 합을 구함3. a, b가 주어지면 양 끝부분의 합만 직접 구하고 중간 부분은 미리 구한 합을 더해줌 전처리: O(n)시간복잡도: O(sqrt(n)) 전처리 후 sqrt(n)개의 그룹, worst case: a=1, b=n-1 중간 값을 처리하는 시간복잡도: sqrt(n)-2 (총 그룹의 수-양 끝의 2그룹) 양 끝 값을 처리하는 시간복잡도: 2sqrt(n) (양 그룹의 원소의 수) 총 시간 복잡도..