목록[개발 정리] (22)
TechY
kocw 강의 : 이화여자대학교 반효경 교수님의 운영 체제 강의,14강 process syncrhonization Bounded-Buffer Problem (producer-consumer problem)syncrhonization issuemultiple producer가 buffer의 특정 위치에 동시에 데이터를 집어넣으면? -> lock 이 필요해 보임multiple consumer가 같은 데이터를 꺼내려고 한다면? -> lock 이 필요해 보임-> mutual exclustion -> need binary semaphorefinite buffer issuebuffer가 다 찼는데, producer가 계속 데이터를 밀어넣으면? -> consumer가 꺼내가서 buffer가 빌 때까지 기다려야 함co..
1. 함수 (Function)주요 목적: 값을 계산하고 반환특징:반드시 값을 반환해야 함SELECT 문 안에서 사용 가능데이터 수정 불가 (읽기만 가능)사용 시기 : 계산이 필요할 때SELECT 문에서 값을 변환할 때예: 환율 계산, 나이 계산-- 나이 계산 함수 예시CREATE FUNCTION fn_calculate_age(@birthDate DATE)RETURNS intASBEGIN RETURN DATEDIFF(YEAR, @birthDate, GETDATE())END-- 사용 예시SELECT dbo.fn_calculate_age('1990-01-01') as 나이2. 저장 프로시저 (Stored Procedure)주요 목적: 여러 작업을 수행하는 프로그램특징:값 반환이 선택적EXECUTE 또는 ..
kocw 강의 : 이화여자대학교 반효경 교수님의 운영 체제 강의,13강 process syncrhonization critical section problemrace condition 이 발생할 수 있는 부분인 critical section 이 있을 때, 여러 process가 해당 section에 접근하려 한다면, entry/exit section이 있어, 하나의 프로세스가 이 부분을 지나면 다른 프로세스는 접근을 하지 못하게 lock 걸어주는 software 접근 방식프로그램적 해결법의 충족 조건mutual exclusion : 프로세스 P_i 가 critical section 부분을 수행 중이면 다른 모든 프로세스들은 그들의 critical section 에 들어가면 안된다progress : 아무도..
kocw 강의 : 이화여자대학교 반효경 교수님의 운영 체제 강의,12강 process syncrhonization 프로세스 안에서 데이터를 접근하는 경로Storage-box (ex. memory) -연산할 데이터-> Execution box (ex. cpu)Execution box (ex. cpu) -연산 결과-> Storage box (ex. memory) 이런 경로로 데이터를 읽고 수정하는 과정으로 인해, 누가 먼저 읽었냐에 따라 결과가 달라질 수 있기에,이를 해결하기 위해 나온 토픽이 process syncrhonization 이다. Process Synchronization공유 데이터의 동시 접근은 데이터의 불일치 문제를 발생시킬 수 있다 (race condition)일관성 유지를 위해서는 ..
kocw 강의 : 이화여자대학교 반효경 교수님의 운영 체제 강의,11강 CPU Scheduling Ready Queue 에 줄을 어떻게 서는가? Multi-level queuepriority 에 따라 줄을 선다. 가장 위에 줄이 system process, 가장 아래 줄이 student process (이게 뭔지는 모르겠다)ready queue 를 여러 개로 분할, queue 별 scheduling 방법을 사용한다.foreground (interactive) -> round robin 방법을 사용bacground (batch - no human interaction) -> FCFS 방법을 사용queue 에 대한 스케줄링이 필요fixed priority schedulingserve all from fore..
kocw 강의 : 이화여자대학교 반효경 교수님의 운영 체제 강의,10강 CPU Scheduling "어떤 프로세스한테 CPU를 줄 것이냐""줬으면 계속 둘 것인가. 아니면 다시 뺏어올 것인가"non-preemptive scheduling (비-선점형 스케줄링) -> 주면 다 쓸 때까지 계속 둔다.preemptive scheduling (선점형 스케줄링) -> 줬다 뺏었다Scheduling Criteria (performance index, performance measure)system 입장에서의 성능 척도CPU utilization : 전체 시간에서 cpu 가 놀지 않고 일한 시간의 비율Throughput : 주어진 시간동안 몇 개의 작업을 완료했는가process 입장에서의 성능 척도Turnaroun..
kocw 강의 : 이화여자대학교 반효경 교수님의 운영 체제 강의,9강 Process Management cpu 를 사용하는 path는 cpu 를 쓰는 단계와 (CPU burst) io 를 쓰는 단계가 (I/O burst) 번갈아가면서 이뤄져있음I/O bound processcpu 를 잡고 계산하는 시간보다 I/O 에 많은 시간이 필요한 jobmany short cpu burstCPU bound process계산 위주의 jobfew very long cpu burst CPU SchedulerReady 상태의 process 중에 이번에 cpu 를 줄 process를 고른다.Dispatchercpu 의 제어권을 cpu scheduler 에 의해 선택된 프로세스에게 넘긴다.context switch 가 발생C..
kocw 강의 : 이화여자대학교 반효경 교수님의 운영 체제 강의,9강 Process Management 부모 프로세스의 문맥 (pc까지)을 복사해서 자식 프로세스를 만든다.새로운걸 만드는데 왜 바꾸는걸까기존에 띄워져 있던 프로세스와 아무 관계가 없는 완전히 새로운 프로세스를 실행한다고 하더라도, 복제 작업이 효율성 측면에서 의미가 있다고 한다.완전히 새 프로세스를 만들기 위해 모든 리소스를 처음부터 설정해야 한다면, 이는 매우 비싼 작업임. 반면, fork()로 부모의 현재 상태를 복사한 다음, 필요한 부분만 변경하거나 새로운 실행 파일로 대체(exec)하면 훨씬 효율적으로 새로운 프로세스를 초기화많은 os 는 Copy-On-Write (COW) 기술을 사용하여, 실제로 필요한 데이터만 복사하기 때문에 ..