운영체제(Operating System, OS)란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는소프트웨어 계층 협의의 운영체제(커널) 운영체제의 핵심 부분으로 메모리에 상주하는 부분 광의의 운영체제 커널 뿐
커널은 부팅될 때 메모리에 올라가는 부분을 말한다. 운영체제를 설치하면 붙은 파일을 복사하는 프로그램 같은 것들은 커널과는 다르지만 넓게 보면 운영체제에 포함된다.메모리 공간을 어느 프로그램에는 충분히 주고 어떤 프로그램에게는 적게 주거나 아예 메모리 공간에서 쫓아낼
각각의 프로그램들은 각각의 공간, 즉 가상 메모리를 가진다. 자기만의 가상 메모리 공간은 0번지부터 시작된다. 당장 필요한 부분은 물리적인 메모리에 올라가고, 당장 필요없으면 디스크의 swap area에 내려간다. 가상 메모리와 실제 메모리의 주소의 차이가 있으므로 a
자식 프로세스도 fork 다음부터 시작된다. 다만 리턴 값이 부모 프로세스에는 자식의 PID 값이 오고 자식 프로세스에는 0이 넘어온다. 하나의 프로세스를 완전히 다른 프로세스로 덮어 씌우는 것이다. 자식이 끝날때까지 부모를 blocked 상태로 만드는 것이다. 이렇게
Asymmetric multiprocessing은 하나의 CPU가 대장 역할을 하는 것이다.deadline이 주어지는 것이다. hard real-time system은 미리 스케줄링을 다 설정해놓고 돌리기만한다. soft real-time computing은 동영상 재
세마포어가 1이면 하나의 프로세스만 접근 가능하다. 굳이 세마포어 변수를 이용하는 이유는 P와 V연산에 1을 더하고 빼는 것이 원자적으로 연산된다고 가정하는 것이다. 실제 세마포어는 synchronization hardware를 통해 구현된다.P0가 S를 얻고 cpu를
실선은 요청을 한거고 점선은 미래에 요청할 수도 있다는 것이다.deadlock avoidance는 점선을 포함해서 싸이클이 생길 것 같으면 자원을 주지 않는 것이다.자원의 인스턴스가 여러개 있는 상황은 다음 알고리즘을 이용한다.0번 프로세스의 경우 최대 쓸 자원이 A
프로그램이 실행되면 그 프로그램만의 0번부터 시작하는 독자적인 논리적인 주소를 갖는다. 이를 가상 메모리라한다. 이것을 실제 물리 메모리에 올라갈때, 가상 주소에서 물리적인 주소로의 주소 변환이 필요하다.symbolic address는 프로그래머가 변수를 다루는 것을
현대 운영체제들이 잘 사용하지 않는 방법이다. 프로그램을 구성하는 가상 메모리 주소 공간이 물리적인 메모리에 통째로 올라가는 방법이다. 이때는 메모리 주소 변환이 비교적 간단하다. 각각의 프로그램마다 0번째부터 시작하는 독자적인 메모리 주소공간이 있는데 시작위치만 알면
왼쪽 아래처럼 각각의 프로세스마다 논리적인 메모리가 있고, 이게 물리적인 메모리에 올라간다. CPU는 논리적인 메모리로 달라하면 하드웨어가 주소를 반환해서 가져온다.운영체제가 하는 것은 없다. 전적으로 하드웨어가 한다.메모리 관리 방법이 연속할당과 불연속할당이 있는데,
맨 오른쪽 disk는 swap area이다. 당장 필요한 부분은 demand paging에 의해 메모리에 올라가있고 그렇지 않은 부분은 swap area에 내려가 있다.만약 cpu가 논리주소를 주면 page table에 찾는데 invalid면 메모리에 찾아야한다. 이렇
reposition (lseek): 파일을 한번 읽고나면 다음 포인터부터 읽는데, 그 파일의 다른 부분부터 읽으려할 때 위치를 수정해주는 reposition 연산을 한다.파일의 metadata를 메모리에 올려놓는 것을 open이라 한다.디스크는 메타데이터 중 일부를 보
대부분의 시간은 seek time과 rotational latency에서 소요된다. cpu는 디스크를 얘기할 때 logical block을 다룬다. 마치 1차원 배열처럼. 논리적인 블록을 섹터랑 매칭하는 것은 컨트롤러가 한다.디스크 컨트롤러가 섹터 단위로 쪼개서 관리하